我试图项目欧拉问题3与13195为样本数,似乎已成为卡住。任何帮助都会很感激,也许会朝着正确的方向轻推。你知道吗
这是为了发展我对python的理解。你知道吗
multiples=[]
n = 13195
for i in range(1, 13196):
if n%i ==0:
multiples.append(i)
for m in multiples:
if n>m>1:
for y in (2, m):
if not m%y==0:
print (m)
我希望输出是:
5
7
13
29岁
但我得到了13195的所有因子。你知道吗
Tags:
python的规则是不创建其他人已经创建的函数。isprime函数已经创建,因此不需要重新创建它。你知道吗
它使用else with for循环的概念,如果for循环中断,else部分将不执行,如果for循环成功完成而没有中断,那么else部分将被执行。你知道吗
问题在于代码片段的素数计算部分。你知道吗
假设
multiples
具有值:[1, 5, 7, 13, 29, 35, 65]
。当应用程序进入循环for y in (2, m)
迭代1:
for y in (2, 5)
最初,y是2
,它执行5%2
并打印5
,因为5%2
不是0
。然后y将变成5
,它做5%5
,什么也不打印。你知道吗。。。你知道吗
迭代7:
for y in (2, 65)
最初,y是2
,它执行65%2
并打印65
,因为65%2
不是0
。然后y将变成65
,它做65%65
,什么也不打印。你知道吗由于使用了
for y in (2,m)
而不是for y in range (2,m)
,因此循环将始终执行两次,值为y=2
和y=m
。你知道吗基本上,用
2
和它本身对所有倍数进行%
运算,而不是计算素数。下面是实现所需输出的示例代码段。你知道吗相关问题 更多 >
编程相关推荐