中醫藥18級新生杯比賽 XP的素數
阿新 • • 發佈:2018-12-09
題目描述
XP最近對素數很痴迷,特別是那些特殊的素數,其中有一類素數被稱為孿生素數。
其定義如下:如果一個數k是素數,k+2也是素數,那麼k和k+2成為一對孿生素數。
請計算一個給定區間m和n(0<m<n)中孿生素數對的個數。
輸入
單組輸入資料
m n
(0<m<n<1000)
輸出
請輸出一行結果:區間[m,n]中孿生素數對的個數
樣例輸入
1 999
樣例輸出
35
思路:判定類似的孿生函式對,可以使用外函式判定解決
#include<stdio.h> #include<math.h> int judge(int n) { int i; if(n==1) //1不為素數,返回0 return 0; for(i=2;i<=sqrt(n);i++) { if(n%i==0) return 0; } return 1; } int main() { int m,n,i,sum=0; scanf("%d%d",&m,&n); for(i=m;i<=n-2;i++) { if(judge(i)&&judge(i+2)==1) sum+=1; } printf("%d\n",sum); return 0; }