信息學奧賽C++語言: 判決素數個數

【題目描述】
輸入兩個整數X和Y,輸出兩者之間的素數個數(包括X和Y)

【輸入】
兩個整數X和Y(1 ≤ X,Y ≤ 105)。

【輸出】
輸出一個整數,表示X,Y之間的素數個數(包括X和Y)。

【輸入樣例】
1 100

【輸出樣例】
25

代碼

#include<cstdio>
#include<cmath>
using namespace std;
bool prime(int x);
int main()
{
    int x,y;
    int a=0;
    int i;
    scanf("%d%d",&x,&y);
    for(i=x; i<=y; i++) 
    if( prime(i) )
    a++;
    printf("%d",a);
    return 0;
}
bool prime(int x)
{
    int i=2;
    if(x==1||x==0)	
	return false;
    while( i<=floor(sqrt(x)) && (x%i!=0) )
    i++;
    if(i>floor(sqrt(x)))
    return true;
    return false;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章