题目链接:点击查看

题目大意:求解:

题目分析:我们需要提前知道威尔逊定理:如果p是素数,则

所以我们可以分情况讨论:

  1. 当3k+7是素数时,,因为威尔逊定理,,所以一定是一个整数,我们设为x,这样一来后面的,因为一定小于等于1,所以取整后一定是x-1,这样一来f(k)=1
  2. 当3k+7不是素数时,(3k+6)!一定能被(3k+7)整除(显然成立),然后上述公式就转换成了,所以f(k)=0

综上所述,先用欧拉线性筛打一个3e6的素数表,因为3k+7最大能到3e6+7,然后预处理一个前缀和,就可以O(1)回答每一个查询了

代码:

#include<iostream>
#include<cstdlib>
#include<string>
#include<cstring>
#include<cstdio>
#include<algorithm>
#include<climits>
#include<cmath>
#include<cctype>
#include<stack>
#include<queue>
#include<list>
#include<vector>
#include<set>
#include<map>
#include<sstream>
using namespace std;typedef long long LL;const int inf=0x3f3f3f3f;const int N=1e7+100;int cnt=0;bool vis[N];int pri[N];int sum[N];void P()
{memset(vis,false,sizeof(vis));for(int i=2;i<N;i++){if(!vis[i])pri[cnt++]=i;for(int j=0;j<cnt&&pri[j]*i<N;j++){vis[pri[j]*i]=true;if(i%pri[j]==0)break;}}memset(vis,false,sizeof(vis));for(int i=0;i<cnt;i++)vis[pri[i]]=true;
}void init()
{P();sum[0]=0;for(int i=1;i<1e6+10;i++){sum[i]=sum[i-1];if(vis[3*i+7])sum[i]++;}
}int main()
{
//  freopen("input.txt","r",stdin);init();int w;cin>>w;while(w--){int n;scanf("%d",&n);printf("%d\n",sum[n]);}return 0;
}

HDU- 2973 YAPTCHA(威尔逊定理)相关推荐

  1. hdu 2973 YAPTCHA(C++)(威尔逊定理)

    hdu 2973 YAPTCHA 点击做题网站链接 题目描述 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (J ...

  2. hdu 6608 Fansblog 威尔逊定理+大数阶乘取模

    传送门 题意:给出一个质数P,找出小于P的最大的质数N,求出N的阶乘模P.(P∈[1e10,1e14]) 思路:威尔逊定理:一个数n若是质数, 则有 (n−1) ! ≡ n−1mod n. 于是可以先 ...

  3. 三个重要的同余式——威尔逊定理、费马小定理、欧拉定理 + 求幂大法的证明

    一.威尔逊定理 若p为质数,则 p|(p-1)!+1 亦:(p-1)! ≡ p-1 ≡ -1(mod p) 例题: HDU 2973 YAPTCHA (威尔逊定理及其逆定理) 解题报告见http:// ...

  4. 7. 数论四大定理(威尔逊定理、欧拉定理、费马小定理、孙子定理)

    一.准备工作 点击查看数论基础知识 二.威尔逊定理 威尔逊定理给出了判定一个自然数是否为素数的充分必要条件.但是由于阶乘是呈爆炸增长的,其结论对于实际操作意义不大. 1. 定理及其变形 当且仅当p为素 ...

  5. HDU - 2973威尔逊定理

    核心问题就是那个等式 我们观察到等式可以写成(n-1)!-1/n-[(n-1)!/n]的形式,这样就应该联想到威尔逊定理了. 回顾一下威尔逊定理的内容:当且仅当n为素数的时候n|(n-1)!-1,n为 ...

  6. HDU多校第三场6608 Fansblog(米勒罗宾+威尔逊定理)

    题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=6608 题目说给你一个1e9−1e14的素数p,让你找到比p小的最大素数q,求q!mod  p的值题目说 ...

  7. 【HDU 6608】Fansblog(威尔逊定理+逆元+快速乘+快速幂)

    题目:点击打开题目链接 题意:输入一个素数 P,找出 P 的前一个素数,并求出 ! mod P的值.(1e9≤ P ≤1e14) 思路: 1.首先找出Q.因为自然数是由素数.合数.1和0组成的,并且数 ...

  8. HDU 6608:Fansblog(威尔逊定理)

    Fansblog Time Limit: 2000/2000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) Total Subm ...

  9. 数论四大定理(欧拉定理、费马小定理、中国剩余定理、威尔逊定理)

    前置知识 同余 假设 a,ba,ba,b 都是整数,如果 nnn 是一个正整数,且存在整数 kkk 使得 a−b=k×na−b=k \times na−b=k×n,则称 a,ba,ba,b 模 nnn ...

最新文章

  1. 四招避免SEO优化过度
  2. PO BO VO DTO POJO DAO概念及其作用(附转换图)
  3. Android上玩玩Hook?
  4. 从NoSQL到Lakehouse,Apache Doris的13年技术演进之路
  5. Java 多态之“绑定”
  6. 解字符串不能超过8000的方法及交叉表的处理
  7. 机器学习之 weka学习(五)示例用法
  8. 管理后台--3,修改分类
  9. 第九:Pytest进阶之xunit fixture
  10. 好险!一入职,就遇到MySQL这么大Bug!差点背锅走人~
  11. 网络QoS原理与实现
  12. java5个成员_JavaSE基础知识(5)—面向对象(5.2类的成员)
  13. Python类调用实例方法
  14. panabit安装和默认密码
  15. 动漫学日语《白熊咖啡厅》(更新中)
  16. hdu 1705[皮克定理]
  17. 淘宝系商品详情系统架构设计
  18. 大学开设大数据专业,都安排了哪些课程?
  19. ZLIB 压缩的数据格式规范
  20. IOS 中视频和音乐合成

热门文章

  1. Nginx负载均衡实现之用户手动选择与DNS轮询
  2. Redis客户端命令行redis-cli操作
  3. 添加tomcat7插件设置jdk编译版本
  4. MapReduce分区-原理
  5. RocketMQ的历史发展
  6. SpringBoot 全局异常处理
  7. tableau示例超市数据在哪儿_超市运营分析 -- Tableau 实战
  8. maven 公用仓库_Maven系列(二):Maven 核心概念
  9. mac上配置php开发环境,Mac配置PHP开发环境
  10. 210129阶段三调试、进程间通信-共享内存