|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
以下内容是第17节课最后一道动手题的答案。因为10以内的整数最多只有两个因数。例如10=2*5.因此最终打印的结果里面,看不出有什么问题。
- n = 2
- 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
复制代码
但是如果把n的范围限定在20,那么就会有如下问题:
16 = 2*8
这个结果打印出来了。
然而16=4*4
这个结果却没有。
如果我希望最终打印的结果里面,是可以同时包含16=2*8和16=4*4的,那么代码应该如何修改呢?
稍微改了一下,看一下还有问题没?
- n = 2
- while n < 29:
- x = 2
- while x < n:
- if n % x == 0:
- if x > n / x:
- break
- if x == n / x:
- print(n, '=', x, '*', n // x)
- break
- print(n, '=', x, '*', n // x)
- x += 1
- else:
- print(n, '是一个素数。')
- n += 1
复制代码
|
|