題解
素?cái)?shù)判斷是常見(jiàn)的一個(gè)函數(shù),我寫(xiě)的isprime函數(shù)應(yīng)該是判斷素?cái)?shù)中復(fù)雜度較小的了,對(duì)要判斷的數(shù)進(jìn)行開(kāi)根運(yùn)算后利用四射五入在強(qiáng)制類(lèi)型轉(zhuǎn)換完成向上取整涩堤。
源碼
#include"stdio.h"
#include "math.h"
#include "stdbool.h"
bool isprime(int x) //常規(guī)判斷素?cái)?shù)
{ if(x==2||x==3){return true;}
int ceil=(int)(sqrt(x)+0.5);
for(int i=2;i<=ceil;i++)
{ if(x%i==0) {return false;}
}
return true;
}
int solution(int N)
{ if(N<=4){ printf("0"); return 0;}
int count=1;//N>=5自然就至少有3和5這一組素?cái)?shù)對(duì)
for(int i=5;i+2<=N; )
{ if(isprime(i)&&isprime(i+2))
{count++;}
i+=2;/*除了2其他素?cái)?shù)都是奇數(shù),每次i+2*/
}
printf("%d",count);
return count;
}
int main()
{
int N;
scanf("%d",&N);
solution(N);
return 0;
}