这个素发生器有什么问题?

时间:2011-12-21 17:55:42

标签: c++ visual-c++

我是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 ...

我会感谢您的帮助。

2 个答案:

答案 0 :(得分:2)

X is a prime number的打印需要移到最里面的循环之外(具有适当的条件)。

答案 1 :(得分:0)

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

你无法接受c=b案件。 c必须小于b,因为b是您应该测试其素数的数字,如果您采用c=b案例,那么无论b c 1}},它将除以{{1}}。