Python 算法练习:比较大小、数字拆分和哥德巴赫猜想
Python 算法练习:比较大小、数字拆分和哥德巴赫猜想
本文提供三种 Python 算法练习:比较两个实数的大小、拆分正整数并逆序输出、验证哥德巴赫猜想。每种算法都包含详细的描述和代码实现,并附有测试用例。
问题一:比较大小
算法描述:
- 输入实型变量 x 和 y;
- 判断 x 是否大于等于 y,如果是,则输出 x-y;如果不是,则输出 y-x。
代码实现如下:
def compare(x, y):
if x >= y:
return x - y
else:
return y - x
x = float(input('请输入变量 x:'))
y = float(input('请输入变量 y:'))
result = compare(x, y)
print(result)
问题二:数字拆分
算法描述:
- 输入一个不多于 5 位的正整数;
- 将输入的数转换为字符串,通过 len() 函数求出其位数,并输出;
- 通过遍历字符串的每一位字符,依次输出每一位的数字;
- 通过切片操作[::-1],将字符串逆序输出。
代码实现如下:
num = int(input('请输入一个不多于 5 位的正整数:'))
num_str = str(num)
digit = len(num_str)
print('该数是', digit, '位数')
print('每一位数字分别是:')
for i in num_str:
print(i)
print('逆序输出:')
print(num_str[::-1])
问题三:验证哥德巴赫猜想
算法描述:
- 输入一个偶数 n,要求大于等于 6;
- 定义一个函数 is_prime(),用于判断一个数是否是素数;
- 通过循环遍历 2 到 n/2 的所有数,逐个判断是否是素数;
- 如果某个数 i 是素数,那么 n-i 也必然是素数,满足条件;
- 输出找到的这两个素数。
代码实现如下:
def is_prime(num):
if num < 2:
return False
for i in range(2, int(num/2)+1):
if num % i == 0:
return False
return True
n = int(input('请输入一个大于等于 6 的偶数:'))
for i in range(2, n//2+1):
if is_prime(i) and is_prime(n-i):
print(i, '+', n-i, '=', n)
break
测试用例:
问题一:
输入 x = 10,y = 5,输出 5 输入 x = 5,y = 10,输出 5
问题二:
输入 1234,输出: 该数是 4 位数 每一位数字分别是: 1 2 3 4 逆序输出: 4321
问题三:
输入 10,输出: 3 + 7 = 10
本文提供的代码仅供参考,你可以根据自己的需求进行修改和完善。祝你学习愉快!
原文地址: https://www.cveoy.top/t/topic/fd7d 著作权归作者所有。请勿转载和采集!