【发布时间】:2014-03-26 15:55:53
【问题描述】:
谁能帮帮我?我正在尝试测试素性,但我似乎无法让它发挥作用。无论出于何种原因,每当我运行它时,只要我从一个非素数开始,它就会运行良好。但是,在运行非素数后,输出为“0 1”,而不仅仅是 0。似乎如果我从非素数开始,一切都是“0 1”,而不是正确的输出。
#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;
}
【问题讨论】:
-
调试器说了什么?
-
for(x<=num-1; x++;)分号在错误的位置。试试for(;x<=num-1; x++) -
如果您将最后一条评论与一个答案结合起来,那么您将得到解决方案。删除第二个 cout 并修复你的 for 循环语法。
标签: c++