1. 程式人生 > >CODE[VS] 2046 孿生素數 3 題解

CODE[VS] 2046 孿生素數 3 題解

由題意得:

1.輸入一個數“n”,找出“n”以內的所有滿足要求的素數對

2.以從小到大的順序篩選,當“i”為素數時,判斷“i+2”這個數是否為素數。如果是,計數器加一,不是,進行下一步篩選

3.程式碼如下:

#include<iostream>
using namespace std;

bool sieve(int num)
{
    for(int i=2; i*i<=num; i++)
    {
        if(num%i==0)
            return 0;
    }
    return 1;
}

int main()
{
    int num,t,count=1;
    cin>>num;
    for(int i=3; i<num; i+=2)
        if(sieve(i)&&sieve(i+2))
            count++;
    cout<<count;
    return 0;
}