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;
}
上一篇 下一篇

猜你喜欢

热点阅读