PTA BASIC 1007.素数对猜想
2020-01-16 本文已影响0人
渊澄314
题解
素数判断是常见的一个函数,我写的isprime函数应该是判断素数中复杂度较小的了,对要判断的数进行开根运算后利用四射五入在强制类型转换完成向上取整。
源码
#include"stdio.h"
#include "math.h"
#include "stdbool.h"
bool isprime(int x) //常规判断素数
{ 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这一组素数对
for(int i=5;i+2<=N; )
{ if(isprime(i)&&isprime(i+2))
{count++;}
i+=2;/*除了2其他素数都是奇数,每次i+2*/
}
printf("%d",count);
return count;
}
int main()
{
int N;
scanf("%d",&N);
solution(N);
return 0;
}