设为首页 加入收藏

TOP

UVA 1434 - YAPTCHA(数论)
2015-11-21 01:57:59 来源: 作者: 【 】 浏览:5
Tags:UVA 1434 YAPTCHA 数论

UVA 1434 - YAPTCHA

题目链接

题意:求出题目中那个公式的答案

思路:
当3?k+7非素数的时候,那么(3?k+6)!(因为必然能找到两个因子相乘)
所以原式为0

当3?k+7为素数的时候,根据威尔逊定理,((3?k+6)!+1)%(3?k+7)==0,因此原式可以转化为[x - (x - 1)] = 1

因此问题转化为只要判断3 * k + 7是不是素数,那么就很好办了,预处理出素数表,再预处理出答案即可

代码:

#include 
  
   
#include 
   
     const long long N = 1000005; bool ispri[N * 3]; int ans[N], t, n; int main() { for (long long i = 2; i < N * 3; i++) { if (ispri[i]) continue; for (long long j = i * i; j < N * 3; j += i) ispri[j] = true; } for (int i = 2; i < N; i++) ans[i] = ans[i - 1] + (!ispri[3 * i + 7]); scanf("%d", &t); while (t--) { scanf("%d", &n); printf("%d\n", ans[n]); } return 0; }
   
  


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇C++设计模式实现--访问者(Visitor.. 下一篇CodeForces 30C Shooting Gallery..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: