1. 程式人生 > 其它 >素數對猜想 (20 分)

素數對猜想 (20 分)

技術標籤: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; }