Python 算法实现:绝对值、位数分解和哥德巴赫猜想
Python 算法实现:绝对值、位数分解和哥德巴赫猜想
问题一:计算绝对值差
算法描述:
- 输入实型变量 x 和 y;
- 判断 x 是否大于等于 y,如果是,输出 x-y;如果不是,输出 y-x。
Python 代码实现:
x = float(input('请输入变量 x 的值:'))
y = float(input('请输入变量 y 的值:'))
if x >= y:
result = x - y
else:
result = y - x
print('计算结果为:', result)
问题二:位数分解
算法描述:
- 输入一个不多于 5 位的正整数;
- 判断输入的数是几位数,保存在变量 digit 中;
- 使用循环,依次取出该正整数的每一位数字,保存在列表 digits 中;
- 打印出每一位数字;
- 使用切片操作,按逆序打印出各位数字。
Python 代码实现:
num = int(input('请输入一个不多于 5 位的正整数:'))
digits = [] # 保存各位数字的列表
digit = 0 # 位数
if num < 10: # 一位数
digit = 1
digits.append(num)
elif num < 100: # 两位数
digit = 2
digits.append(num // 10)
digits.append(num % 10)
elif num < 1000: # 三位数
digit = 3
digits.append(num // 100)
digits.append((num // 10) % 10)
digits.append(num % 10)
elif num < 10000: # 四位数
digit = 4
digits.append(num // 1000)
digits.append((num // 100) % 10)
digits.append((num // 10) % 10)
digits.append(num % 10)
else: # 五位数
digit = 5
digits.append(num // 10000)
digits.append((num // 1000) % 10)
digits.append((num // 100) % 10)
digits.append((num // 10) % 10)
digits.append(num % 10)
print('该正整数是', digit, '位数')
print('每一位数字为:', digits)
print('逆序打印各位数字:', digits[::-1])
问题三:验证哥德巴赫猜想
算法描述:
- 输入一个大于等于 6 的偶数;
- 判断该偶数是否能表示成两个素数之和;
- 使用两个循环,分别从 2 到该偶数的一半找到两个素数;
- 判断找到的两个素数之和是否等于该偶数,如果是,则满足哥德巴赫猜想;如果不是,则继续寻找;
- 输出结果。
Python 代码实现:
def is_prime(num):
# 判断是否为素数
if num < 2:
return False
for i in range(2, int(num ** 0.5) + 1):
if num % i == 0:
return False
return True
def goldbach_conjecture(even_num):
# 验证哥德巴赫猜想
if even_num < 6 or even_num % 2 != 0:
print('输入错误,请输入大于等于 6 的偶数')
return
for i in range(2, even_num // 2 + 1):
if is_prime(i) and is_prime(even_num - i):
print(even_num, '可以表示成两个素数之和:', i, '+', even_num - i)
return
even_num = int(input('请输入一个大于等于 6 的偶数:'))
goldbach_conjecture(even_num)
注意:
在这个问题中,我们定义了两个函数 is_prime 和 goldbach_conjecture 来分别判断一个数是否为素数和验证哥德巴赫猜想。这样做的好处是可以提高代码的可读性和复用性。
原文地址: http://www.cveoy.top/t/topic/fd5P 著作权归作者所有。请勿转载和采集!