您的位置:首页 > 其它

UVA 1434 YAPTCHA(威尔逊定理简单应用)

2016-01-25 22:55 453 查看
题目链接:【UVA 1434 】



求Sn(1<=n<=10^6)

威尔逊定理:当且仅当p是质数时,((p-1)!+1)%p=0  并且(p-1)! % p = p-1

#include <iostream>
#include <algorithm>
#include <cstdio>
#include <cstring>
#include <string>
using namespace std;
const int inf=1e6+10;
int sum[inf], prime[3*inf];
int t, n;
void isprime()
{
memset(prime, 0, sizeof(prime));
for(int i=2; i<3*inf; i++)
{
if(!prime[i])
{
for(int j=i+i; j<3*inf; j+=i)
{
prime[j] = 1;
}
}
}
}
void init()
{
isprime();
sum[0]=sum[1]=0;
for(int i=2; i<inf; i++)
{
sum[i] = sum[i-1]+(1-prime[3*i+7]);
}

}
int main()
{
init();
scanf("%d", &t);
while(t--)
{
scanf("%d", &n);
printf("%d\n", sum
);
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: