在这片梦想之地,不堪回首的过去像泡沫一样散去,不愿面对的明天|

PassName

园龄:3年1个月粉丝:32关注:16

威尔逊定理

什么是威尔逊定理

p 是质数的充要条件为 (p1)!1(mod p)
也可以写作:p 为质数的充要条件为 p(p1)!+1

例子

由给定的n计算这个累加的和。

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=3e6+50;
int a[N];
int cnt=0;   
int p[N];
void f(int n){
    for(int i=2;i<=n;i++){
        if(!p[i])a[cnt++]=i;
        for(int j=0;j<cnt&&i*a[j]<=n;j++){            
            p[i*a[j]]=1;
            if(i%a[j]==0)break;
        }
    }
}
int main(){
	f(N-1);
	int t;
	memset(a,0,sizeof a);
	p[0]=p[1]=1;
	for(int i=1;i<1e6+5;i++){
		a[i]=(p[3*i+7]+1)%2;
		a[i]+=a[i-1];
	}
	cin>>t;
	while(t--){
		int n;
		cin>>n;		
		cout<<a[n]-a[1]<<endl;
	}
}

本文作者:PassName

本文链接:https://www.cnblogs.com/spaceswalker/p/15996622.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   PassName  阅读(137)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起