素數對猜想 (20 分)
阿新 • • 發佈:2021-02-04
技術標籤:PTA
一:題目簡介
輸入格式:
輸入在一行給出正整數N。
輸出格式:
在一行中輸出不超過N的滿足猜想的素數對的個數。
輸入樣例:
20
輸出樣例:
4
二:思路與程式碼
思路:
首先,我們藉助一個數組來儲存當前數字是不是素數,如果是0表示為素數。之後我們只需要遍歷一次陣列,只要滿足相鄰的素數差值為2即可。
程式碼:
#include <stdio.h>
int getRes(int number[],int n){
int index, count;
count = 0;
for(index = 0; index <= n - 2 ; index++){
if(number[index]==0 && number[index+2]==0 && number[index+1]==1){
count++;
}
}
return count;
}
int main(){
int index, n, curNum;
int number[100000] = {0};
scanf("%d", &n);
// 將陣列中不是素數的數字標記為1.
for(index = 2; index <= n; index++){
for(curNum=index+index; curNum<=n; curNum+=index){
number[curNum] = 1;
}
}
printf("%d", getRes(number, n));
return 0;
}