甘肃政法干警考试:c++程序编写:用穷举法找出1到100的质数并显示出来。分别使用while、do-while、for循环语句实现。

来源:百度文库 编辑:杭州交通信息网 时间:2024/04/28 20:42:12
请各位程序高手帮忙 急急急

if(m%2!=0) //如果是以2结尾的则一定不是素数,数目比较大的时候,效率高
{
k=(int)sqrt(m);
for(n=2;n<=k;n++) //判断是否为素数
{
if(m%n==0) break;
}
if(n==k) //不是则输出
{
count++;
cout<<m<<" ";
}
这样是不是要好一些?

1.用while:

include<iostream.h>

void main()
{int i,j,n,m;
i=2;
while(i<101)
{m=1;n=i/2;j=2;
while(j<=n)
{ if(i%j==0)
{m=0;
breake;
}
j++;
}
if(m)
cout<<i<<"";
i++;
}
}

2.用do...while

#include<iostream.h>

void main()
{int i,j,n,m;
i=2;
do
{m=1;n=i/2;j=2;
do
{if(i%j==0)
{m=0;
breake;
}
j++;
}while(j<=n);
if(m)
cout<<i<<"";
i++;
}while(i<101);
}

3.用for
# include<iostream.h>
void main()
{int i,j,n,m;
for(i=2;i<101;i++)
{m=1;
n=i/2;
for(j=2;j<=k;j++)
{if(i%j==0)
{m=0;
breake;
}
}
if(m)
cout<<i<<"";
}}

#include <iostream.h>
#include <math.h>

void main()
{
int flag=1;

for(int i=11;i<101;i++)
{
for(int j=2;j<sqrt(i);j++)
{
if(i%j==0)
{
flag=0;
break;
}
else
flag=1;
}
if(flag==0)
cout<<" ";
else
cout<<i<<endl;

}
}
这次没问题了。。
其它类似

a simple question, do it by yourself