这个主发电机有什么问题?

what's wrong with this prime generator?

本文关键字:什么 问题 发电机      更新时间:2023-10-16

我是一个c++新手。我只是不知道这段代码出了什么问题。代码如下:

# include <iostream>
using namespace std;
int main()
{
    int a, b, c, d;
    cout<<"Enter number of digits to be tested: ";
    cin>>a;
    if (a==2)
    {cout<<a<<" is a prime number."<<endl;}
    else
    {
        cout<<"2 is a prime number."<<endl;
        for (b=3; b<=a; b++)
        {
            for (c=2; c<=b; c++)
            {
                d=b%c;
                if (d==0)
                {break;}
                else 
                {cout<<b<<" is a prime number."<<endl;}
            }
        }
    }
    return 0;
}        

a=11的输出类似于

2 is a prime number.
3 is a ...
5 is a ...
5 ...
5 ...
7 ...
7 ...
7 ...
7 ...
7 ...
9 ...
11 ...
11 ...
11 ...
11 ...
11 ...
11 ...
11 ...
11 ...
11 ...

我会很感激你的帮助。

需要将X is a prime number的打印移出最内层循环(带有适当的条件)

 for (c=2; c<=b; c++)

不能取c=b的情况。c必须小于b,因为b是要测试其质数的数,如果取c=b的情况,那么无论b是什么,都要除以c