我正在尝试将所有素数输出到输入的数字,我无法弄清楚为什么它不起作用。
有人可以花时间解释我做错了吗?
#include<iostream>
#include<string>
using namespace std;
int main()
{
int number;
cout << "Enter Number: ";
cin >> number;
for (int a = 2;a <= number;a++)
{
bool prime = false;
for (int b = 2;b < a;b++)
{
if (a%b == 0)
{
prime = true;
break;
}
if (prime = true)
cout << a << endl;
}
}
system("pause");
return 0;
}
答案 0 :(得分:1)
在此代码中:
if (a%b == 0)
{
prime = true;
break;
}
你必须这样写:
if (a%b == 0)
{
prime = false;
break;
}
同时将bool prime = false;
更改为bool prime = true;
最终这段代码:
if (prime == true)
cout << a << endl;
必须在for loop
你的代码会更好:
#include<iostream>
#include<string>
using namespace std;
int main()
{
int number;
cout << "Enter Number: ";
cin >> number;
for (int a = 2; a <= number; a++)
{
bool prime = true;
for (int b = 2; b < a; b++)
{
if (a%b == 0)
{
prime = false;
break;
}
}
if (prime == true)
cout << a << endl;
}
system("pause");
return 0;
}
结果(示例):
答案 1 :(得分:0)
for(i=2;i<=number;i++)
{
ct=0;
for(j=2;j<i;j++)
{
if(i%j==0)
{
ct=1;
break;
}
}
if(ct==0)
{
printf("%d \t",i);
}
}