首页 > 解决方案 > 寻找素数 - 我做错了什么?

问题描述

我正在尝试生成一定数量(输入)的素数,仅使用“while”“for”和“If”等语句。例如,如果我输入“8”,程序应该返回 8 个素数 2,3,5,7,11,...等等。

下面是我的代码,但无论我输入什么数字,它似乎只给我 2 和 3。

非常感谢您的帮助!

num=input("enter the number of prime numbers needed:")
if num=='0' or num=="" or int(num)<0:
    print("No data ^^")
else:
    num=int(num)
    i=2; N=3; prm=True
    print(2); count=1
    while(True):
        if count==num:
            break
        i=2
        while i<N:
            if N%i==0:
                prm=False
                break
            else:
                i+=1
        if prm==True:
            print(N); count+=1
        N+=1

标签: python

解决方案


您只是忘记prm = true在循环末尾添加:

num=input("enter the number of prime numbers needed:")
if num=='0' or num=="" or int(num)<0:
    print("No data ^^")
else:
    num=int(num)
    i=2; N=3; prm=True
    print(2); count=1
    while(True):
        if count==num:
            break
        i=2
        while i<N:
            if N%i==0:
                prm=False
                break
            else:
                i+=1
        if prm==True:
            print(N); count+=1
        N+=1
        prm=True

顺便提一句。你写的代码不是最干净的,也许你应该努力


推荐阅读