C++新手编程:输出1~1000内所有的非素数。求解答!!! 不要太深奥的 我乃新手

如题所述

#include <stdio.h>
int main (void)
{ int i,j,m;
for (i=1;i<=1000;i++)
{ for (j=2;j<=i/2;j++)
{ if(i%j==0)
{ printf("%d\n",i);
break;} }}
return 0;}
我也是刚学的,我运行了,应该没问题追问

这个我能看懂! 但是能不能改成每行输出5个数,你这个前面有好多数都显示不出来!!

追答

那就直接把printf("%d\n",i);里\n去了,或者几个空格,不就一行输出很多了
下面这个刚好满一个屏幕
#include
int main (void)
{ int i,j,m;
for (i=1;i<=1000;i++)
for (j=2;j<=i/2;j++)
if(i%j==0)
{ printf("%d ",i);
break;}
return 0;}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-04-13
#include <iostream>
#include <cstdlib>

using namespace std;
//判断是否为素数,是素数返回true,否则返回false
bool isSuShu(int a)
{
if(a==1 || a==2) return false;
for(int i=2;i!=a;++i)
if(a%i==0) return false;
return true;
}

int main()
{
int cnt=0;
for(int i=1;i!=1001;++i)
{
if(!isSuShu(i))
{
cout<<i<<" ";
cnt++; //记录符合条件的结果个数
}
//每输出10个结果则换行
if(cnt%10==0) cout<<endl;
}
system("pause");
return 0;
}
第2个回答  2011-04-13
#include<iostream>
using namespace std;
int main()
{ int i,j,h=0;
for(i=1;i<=1000;i++)
{ for(j=2;j<i;j++)
if(i%j==0)
break;
if(j<i)
h++,cout<<i<<" ";
if(h%5==0)
cout<<endl;
}
return 0;
}追问

我目前只学了break,continue,for等。那个什么cout的不懂 ,虽然结果很正确!!

追答

cout 是C++的输出 跟c语言的printf功能一样

相似回答