|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
请教大神,这样的代码为啥不对啊?
n = 1
while n < 10:
x = 1
while x < n:
if n % x == 0:
print(n, '=', '*', n // x)
break
x += 1
else:
print(n, '是一个素数')
n += 1
出来的结果是这样的:
1 是一个素数
2 = * 2
3 = * 3
4 = * 4
5 = * 5
6 = * 6
7 = * 7
8 = * 8
9 = * 9
本帖最后由 andy大宝 于 2023-4-8 19:16 编辑
我将代码的修改步骤分成了三步,希望有助于您理解
1.首先,您希望打印出 a = b * c 的格式,显然 print() 处漏掉了一些需要打印的内容:
- n = 1
- while n < 10:
- x = 1
- while x < n:
-
- if n % x == 0:
- print(n, '=', x, '*', n // x) #第一步
- break
- x += 1
- else:
- print(n, '是一个素数')
- n += 1
复制代码
2.进一步观察,发现 2~9 输出结果的第一个奇数都为 1,因此您需要将开始判断的数字设为 2:
- n = 1
- while n < 10:
- x = 2 #第二步
- while x < n:
-
- if n % x == 0:
- print(n, '=', x, '*', n // x)
- break
- x += 1
- else:
- print(n, '是一个素数')
- n += 1
复制代码
3.最后,1 是一个特殊情况,需要单独拉出来看:
- n = 2
- print('1 不是一个素数') #第三步
- while n < 10:
- x = 2
- while x < n:
-
- if n % x == 0:
- print(n, '=', x, '*', n // x)
- break
- x += 1
- else:
- print(n, '是一个素数')
- n += 1
复制代码
|
|