用穷举法找出1到100的质数并显示出来。分别使用while、do-while、for循环语句实现。
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<<"";
}}
4.#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;
}
}
这次没问题了。。
其它类似
5.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<<" ";
}