我已经编程了java一段时间了,我刚刚开始使用c ++。 我决定制作一个素数检查器,但由于某种原因,如果它不是素数,它就不会打印出来。
#include <iostream>
using namespace std;
int prime;
int main()
{
while(true)
{
int primeChecker;
cout << "Enter a number to check if it is prime" << endl;
cin >> prime;
for(int i = 2; i <= (1/2)*prime; i++){
cout << "Working" << endl;
if(prime % i == 0){
cout << "This number is not prime" << endl;
primeChecker+=1;
}
}
if(primeChecker == 0){
cout << "This number is prime" << endl;
}
}
return 0;
}
答案 0 :(得分:2)
你需要用0初始化primechecker。同时写i&lt; = prime / 2而不是i&lt; =(1/2)prime。当你发现数字不是素数时,你应该再次使用break。你还需要检查1.我认为这是你试图写的 -
#include <iostream>
using namespace std;
int prime;
int main()
{
while(true)
{
int primeChecker=0;
cout << "Enter a number to check if it is prime" << endl;
cin >> prime;
if(prime==1)
{
cout << "This number is not prime" << endl;
}
else
{
for(int i = 2; i <= prime/2; i++)
{
cout << "Working" << endl;
if(prime % i == 0)
{
cout << "This number is not prime" << endl;
primeChecker+=1;
break;
}
}
if(primeChecker == 0)
{
cout << "This number is prime" << endl;
}
}
}
return 0;
}
此代码将花费更多时间来处理更大的值。我建议你检查素数的平方根,以确认该数字是否为素数。祝你好运!