任何人都可以帮助我吗?我试图测试素性但我似乎无法让它工作。无论出于何种原因,每当我运行它时,只要我从一个不是素数的数字开始,它就会正常运行。然而,在运行非素数之后,输出为“0 1”而不是0。似乎如果我从一个不是素数的数字开始,一切都是“0 1”而不是正确的输出。 / p>
#include <iostream>
using std::cin;
using std::cout;
using std::endl;
#include <cmath>
int main()
{
int num;
int x = 2;
//cin >> num;
while(cin >> num) //(x<=num-1)
{
for(x<=num-1; x++;)
{
if(num%x==0)
{
cout << "0" << endl ; //1 is prime, 0 is not prime
break;
}
if(x==num)
{
cout << "1" << endl ;
break;
}
}
if(x==num)
{
cout << "1" << endl ;
}
}
return 0;
}
答案 0 :(得分:1)
你有cout&lt;&lt; “1”两次,你可能并不是那个意思
答案 1 :(得分:0)
for(x<=num-1; x++;)
分号位于错误的位置,因此不是声明执行应该发生的条件x<=num-1
,而是声明x<=num-1
表达式只是在没有效果的情况下进行评估,然后在素数的情况下{ {1}}递增,直到
x
是真的,因为事实上if(num%x==0)
就此而论。然后打印'0',然后打印'1',因为
num==x
是真的。