【1453】筛法

来源:互联网 发布:遗传算法的书籍 编辑:程序博客网 时间:2024/06/15 13:31

描述:

用筛法求[a,b]中的素数。
Find out the prime numbers in [a, b].

输入:

2个正整数:a b。
a、b均在1000以内,且a小于等于b。
2 positive integers: a, b. Both a and b are less than or equal 1000 and a is less than or equal to b.

输出:

[a b]区间内的所有素数,每个单独一行。
All primes in [a, b], each one in a row.

输入样例:

2 5

输出样例:

235


#include<iostream>using namespace std;int pansushu(int i);int main(){int a,b,i,j;int s[1001];cin>>a>>b;//先判断i是不是素数,是的话让i的倍数的数组=0,令s[i]=1,不是则进入i=i+1for(i=2;i<=b;i++){if(pansushu(i)==1)   //i是素数,倍数数组为0 ,s[i]=1{s[i]=1;for(j=i*2;j<=b;j=j+i){s[j]=0;}}if(s[i]==0)   //i不是素数,进入i=i+1{continue;}}for(j=2;j<=b;j++){if(s[j]==1&&j>=a){cout<<j<<endl;}}}int pansushu(int i){int j,flag=1;for(j=2;j<i;j++){if(i%j==0){flag=0;break;}}if(flag==1)return(1);if(flag==0)return(0);}