用筛选法求100之内的素数

/*         
* Copyright (c) 2012, 烟台大学计算机学院         
* All rights reserved.         
* 作 者:  刘同宾       
* 完成日期:2012 年 11 月 26 日         
* 版 本 号:v1.0                 
* 输入描述:    
* 问题描述:用筛选法求100之内的素数。 
* 程序输出:
* 问题分析:略        
* 算法设计:略         
*/

#include<iostream>

#include<iomanip>

#include<cmath>

using namespace std;

int main()
{
	cout<<"100以内的全部素数:"<<endl;

	int i,j,k;

	int a[101];

	for(i=1;i<=100;i++)
	{
		a[i]=i;
	}

	a[1]=0;               //先挖掉a[1]

	for(i=2;i<sqrt(100);i++)
	{
		for(j=i+1;j<=100;j++)
		{
			if(a[i]!=0&&a[j]!=0)
			{
				if(a[j]%a[i]==0)
				{
					a[j]=0;           //把非素数挖掉,不是素数的都赋值为0
				}
			}
		}
	}

	cout<<endl;

	for(i=1,k=0;i<=100;i++)    
	{
		if(a[i]!=0)              //选出值不为0的数  即素数
		{
			cout<<setw(5)<<a[i];

			k++;
		}

		if(k==10)      //输出10个数后换行
		{
			cout<<endl;
		    k=0;
		}
	}

	cout<<endl;

	return 0;
}

用筛选法求100之内的素数_第1张图片

你可能感兴趣的:(用筛选法求100之内的素数)