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))
____
展开
 我来答
waketzheng
推荐于2018-08-07 · TA获得超过644个赞
知道小有建树答主
回答量:566
采纳率:63%
帮助的人:151万
展开全部
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以上版本才能运行)

所以,你不能只是照搬,要看懂程序、会调试啊。

heart阿飞55
2018-06-30 · TA获得超过1086个赞
知道大有可为答主
回答量:3030
采纳率:82%
帮助的人:562万
展开全部
#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++; } } }
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式