以下代码似乎不会打印从1到100的素数。 我正在运行两个for循环,其中找到模数,然后更新计数值(c)。
using namespace std;
int main(){
for(int i=0,c=0;i<100;i++){
for(int j=1;j<=i;j++){
if(i%j==0){
c++;
}
}
if(c<=2){
cout<<i<<"\n";
}
}
return 0;
}
答案 0 :(得分:0)
for(int i=0,c=0;i<100;i++){
在外部循环c
的第一次迭代变为非零之后,它会在进一步的迭代中不断增加。您需要为外循环的每次迭代设置c=0
。
int c=0;
for(int i=0;i<100;i++){
c=0;
...
此外,您可能希望在查找数字是否为素数时查看优化,例如您可以运行从2
到sqrt(i)
的内部循环,然后检查c>0
答案 1 :(得分:0)
声明一个整数类型的变量计数;
for(int i=1;i<=100;i++)
{
count=0;
for(int j=i;j>=1;j--)
{
if(i%j==0)
{
count++;
}
}
if(count==2)
{
cout<<i<<"\n";
}
}