1、选择法
#include<iostream>
#include<cmath>
#include <iomanip>
using namespace std;
int main(int argc, char *argv[])
{
int i, j, a[100];
for(i=0;i<100;i++)
{
a[i]=i+1;
}//使数组a[0]到a[100]的值依次是从1到100
a[0]=0;//a[0]=1 不是素数所以先挖掉,因为后面输出a[i]不等0的数
for(i=1;i<11;i++)
{
for(j=i+1;j<100;j++)
{
if(a[i] != 0 &&a[j] != 0 )
if(a[j]%a[i] == 0)
a[j] = 0;
}
}
int n=0;
for(i=0; i<100; i++)
{
if(a[i] != 0)
{
cout<<setw(5)<<a[i]<<" ";
n++;
}
if(n == 5)
{
cout<<endl;
n=0;
}
}//输出a[i]不等0的数
cout<<endl;
return 0;
}
2、排除法求100以内的素数,让每个数除以2到sqrt((float)100),当全部不能整除那么这个数就是素数。
#include<iostream>
#include <cmath>
using namespace std;
int main()
{
int i,j;
int n=0;
bool flag=1;
for (i=1;i<100;i++)
{
for (j=2;j<sqrt((float)100);j++)
{
if((i%j) == 0) flag =0;
}
if (flag)
{
n++;
cout<<i<<' ';
if (n%5 == 0)
{
cout<<endl;
}
}
flag =1;
}
return 0;
}