正确的输出为:9967
说明: 素数是任何只能被1和它本身整除的数。例如2、3、5、7、11、13、17、19、23、29、31,。。。。。。。。 数字总和指该数字中所有数字的总和。例如,数字为1234,则数字之和为1+2+3+4=10
def sumofprime(x):
con1,con2=False,False
for num in range(x,1000,-1):
for i in range(2, num):
if (num % i) == 0:
break
else:
print(num)
con1=True
break
sum=0
while(num>0):
dig=num%10
sum=sum+dig
num=num//10
print(sum)
x=sum
for i in range(2, x):
if (x % i) == 0:
print(x, "is not a prime number")
break
else:
print(x, "is a prime number")
con2=True
if con1==True and con2==True:
print(num,sum)
break
else:
sumofprime(x-1)
sumofprime(9999)
不能在循环外使用
break
。您的代码看起来过于复杂和冗长。您应该使用“分而治之”策略来解决您的问题:问题清单:
n
下生成素数生成所有需要的素数':
提取素数数字和的素数:
获取最大素数并打印:
输出:
你可以翻译
进入使用python 3.8之前版本的循环,如下所示:
相关问题 更多 >
编程相关推荐