算法设计与 Python 实现:数的运算、位数分解、哥德巴赫猜想
1. 算法设计与 Python 实现:数的运算
算法描述:
- 输入:实型变量 x 和 y
- 如果 x ≥ y,则输出 x-y
- 如果 x < y,则输出 y-x
算法框图:
+---------------------+
| |
| 输入 x 和 y |
| |
+----------+----------+
|
|
v
+----------+----------+
| |
| 判断 x ≥ y |
| |
+----+----------+----+
| |
v v
+----+----+ +----+----+
| | | |
| x-y | | y-x |
| | | |
+---------+ +---------+
Python 实现:
def calculate(x, y):
if x >= y:
return x - y
else:
return y - x
x = float(input('请输入 x 的值:'))
y = float(input('请输入 y 的值:'))
result = calculate(x, y)
print('计算结果为:', result)
2. 算法设计与 Python 实现:位数分解
算法描述:
- 输入:一个不多于 5 位的正整数 num
- 初始化位数 count 为 0
- 初始化列表 digits 为空列表
- 当 num 大于 0 时,执行以下操作:
- 将 num 除以 10,得到商和余数
- 将余数添加到 digits 列表中
- 将 num 更新为商
- count 加 1
- 打印位数 count
- 打印每一位数字 digits
- 打印逆序数字 digits[::-1]
Python 实现:
num = int(input('请输入一个不多于 5 位的正整数:'))
count = 0
digits = []
while num > 0:
quotient, remainder = divmod(num, 10)
digits.append(remainder)
num = quotient
count += 1
print('位数为:', count)
print('每一位数字为:', digits)
print('逆序数字为:', digits[::-1])
3. 算法设计与 Python 实现:验证哥德巴赫猜想
算法描述:
- 输入:一个大于等于 6 的偶数 num
- 初始化列表 primes 为空列表
- 初始化变量 flag 为 False
- 从 2 开始到 num//2 的范围内,依次遍历每个数 i:
- 判断 i 和 num-i 是否都是素数:
- 如果是素数,则将 i 和 num-i 添加到 primes 列表中
- 将 flag 更新为 True
- 退出循环
- 判断 i 和 num-i 是否都是素数:
- 如果 flag 为 True,则打印 primes 列表
- 如果 flag 为 False,则打印 '无法找到满足条件的素数对'
Python 实现:
def is_prime(n):
if n <= 1:
return False
for i in range(2, int(n**0.5)+1):
if n % i == 0:
return False
return True
num = int(input('请输入一个大于等于 6 的偶数:'))
primes = []
flag = False
for i in range(2, num//2 + 1):
if is_prime(i) and is_prime(num - i):
primes.append((i, num - i))
flag = True
break
if flag:
print('满足条件的素数对为:', primes)
else:
print('无法找到满足条件的素数对')
原文地址: http://www.cveoy.top/t/topic/fd49 著作权归作者所有。请勿转载和采集!