CodeForces - 114E(数论:欧拉筛素数+费马平方定理+bitset(节省空间))

费马平方定理: 奇质数能表示为两个平方数之和的充分必要条件是该质数被4除余1。

节省空间的东西: bitset <范围> p; 

#include <iostream>
#include <cstdio>
#include <cstring>
#include <bitset>
using namespace std;

const int N = 300000005;

bitset<N> prime;

int main ()
{
    int left,right,i;
    scanf("%d%d",&left,&right);
    prime.set();  //所有位置置1
    for (i=3;i*i<=right;i+=2) if (prime[i])
        for (int j=i*i;j<=right;j+=2*i)
            prime[j]=false;

    int cnt=(left<=2 && 2<=right);
    for (i=5;i<=right;i+=4)
        if (i>=left && prime[i])
            cnt++;
    printf("%d\n",cnt);
    return 0;
}
View Code

 

posted @ 2022-03-26 16:09  VxiaohuanV  阅读(46)  评论(0编辑  收藏  举报