python 从键盘任意输入一个正整数n,并找出大于n的最小素数,这个程序怎么写 5
这三个空格应该填什么代码?importmathm=input('请输入一个正整数')n=int(m)whileTrue:n+=1print(n)f=Truea=2whil...
这三个空格应该填什么代码?
import math
m=input('请输入一个正整数')
n=int(m) while True: n+=1 print(n)
f=True a=2 while___: if___: f=False
break a+=1
if f:
print('大于%s)的最小素数是%s'%(m,n))
____ 展开
import math
m=input('请输入一个正整数')
n=int(m) while True: n+=1 print(n)
f=True a=2 while___: if___: f=False
break a+=1
if f:
print('大于%s)的最小素数是%s'%(m,n))
____ 展开
2个回答
展开全部
import math
m=input('请输入一个正整数')
n=int(m)
while True:
n+=1
print(n)
f=True
a=2
while a<=int(math.sqrt(n)):
if n%a==0:
f=False
break
a+=1
if f:
print('大于%s)的最小素数是%s'%(m,n))
break
My style:
import math
def is_prime(n):
if n % 2 == 0:
return False
for i in range(3, math.sqrt(n)+2, 2):
if n % i == 0:
return False
return True
def main():
m = n = int(input('请输入一个正整数'))
while True:
n += 1
if is_prime(n):
print(f'大于{m}的最小素数是{n}')
return
if __name__ == '__main__':
main()
追问
程序还是运行不了
追答
import math
m=input('请输入一个正整数:sdf')
n=int(m)
while True:
n+=1
print(n)
f=True
a=2
while a<=int(math.sqrt(n)):
if n%a==0:
f=False
break
a+=1
if f:
print('大于%s的最小素数是%s'%(m,n))
break
import math
def is_prime(n):
if n % 2 == 0:
return False
for i in range(3, int(math.sqrt(n))+2, 2):
if n % i == 0:
return False
return True
def main():
m = n = int(input('请输入一个正整数'))
while True:
n += 1
if is_prime(n):
print(f'大于{m}的最小素数是{n}')
return
if __name__ == '__main__':
main()
第一个是因为你把第15行中的英文%打成中文的%, 我直接复制了你的代码而报错。
第二个是因为第6行中没有把math.sqrt运算后的float转为int。(PS:第二个要python3.6以上版本才能运行)
所以,你不能只是照搬,要看懂程序、会调试啊。
展开全部
#include<stdio.h> void main() { int n,i,flag=0; scanf("%d",&n); while (n++) { for (i=2;i<=n;i++)//判断素数 if ((n)%i==0) break; if (n==i) { flag++; if (flag==3)//输出第三个素数并推出while循环 { printf("第三个素数:%d\n",n); break; } else n++; } } }
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询