当前位置: 首页 > news >正文

HDU-2973 YAPTCHA

题目传送门
先把题目中的公式弄过来。

S n = ∑ k = 1 n ⌊ ( 3 k + 6 ) ! + 1 3 k + 7 − ⌊ ( 3 k + 6 ) ! 3 k + 7 ⌋ ⌋ S_n=\sum\limits_{k=1}^{n}\lfloor\frac{(3k+6)!+1}{3k+7}-\lfloor\frac{(3k+6)!}{3k+7}\rfloor\rfloor Sn=k=1n3k+7(3k+6)!+13k+7(3k+6)!⌋⌋
首先,得先了解威尔逊定理

威尔逊定理(证明后续发)

对于一个素数 p p p,有:
( p − 1 ) ! ≡ − 1 ( m o d p ) (p-1)!\equiv-1(mod\ p) (p1)!1(mod p)

分析

然后通过威尔逊定理来分析题目。
我们设 x = 3 k + 7 x=3k+7 x=3k+7,那么上面的式子就变成了:
S n = ∑ k = 1 n ⌊ ( x − 1 ) ! + 1 x − ⌊ ( x − 1 ) ! x ⌋ ⌋ S_n=\sum\limits_{k=1}^{n}\lfloor\frac{(x-1)!+1}{x}-\lfloor\frac{(x-1)!}{x}\rfloor\rfloor Sn=k=1nx(x1)!+1x(x1)!⌋⌋

x是素数

由于威尔逊定理,当 x x x是素数时, ( x − 1 ) ! + 1 ≡ 0 ( m o d p ) (x-1)!+1\equiv0(mod\ p) (x1)!+10(mod p),那么 ( x − 1 ) ! + 1 x \frac{(x-1)!+1}{x} x(x1)!+1就一定是一个整数,所以 ⌊ ( x − 1 ) ! x ⌋ \lfloor\frac{(x-1)!}{x}\rfloor x(x1)!就是一个比 ( x − 1 ) ! + 1 x \frac{(x-1)!+1}{x} x(x1)!+1 1 1 1的整数,所以原式的值为 1 1 1

x是合数

x x x是合数时,就一定有两个数 a a a b b b,满足 1 < a < b < x 1<a<b<x 1<a<b<x,所以 ( x − 1 ) ! x \frac{(x-1)!}{x} x(x1)!就是一个整数。又由于 k ≥ 1 k\ge1 k1,所以 x > 1 x>1 x>1,那么 ( x − 1 ) ! + 1 x − ( x − 1 ) ! x < 0 \frac{(x-1)!+1}{x}-\frac{(x-1)!}{x}<0 x(x1)!+1x(x1)!<0,可以得出 ⌊ ( x − 1 ) ! + 1 x − ( x − 1 ) ! x ⌋ = 0 \lfloor\frac{(x-1)!+1}{x}-\frac{(x-1)!}{x}\rfloor=0 x(x1)!+1x(x1)!=0

总结

所以综上可得,只需要判断 x x x,即 3 k + 7 3k+7 3k+7是不是素数,问题就迎刃而解了。

#include<bits/stdc++.h>
#define endl putchar('\n')
using namespace std;
const int N=5e6+5;
int read(){int x=0,f=1;char c=getchar();while(c<'0'||c>'9'){if(c=='-')f=-1;c=getchar();}while(c>='0'&&c<='9')x=(x<<3)+(x<<1)+c-'0',c=getchar();return x*f;
}
void print(int x){if(x<0)putchar('-'),x=-x;if(x<10){putchar(x+'0');return;}print(x/10);putchar(x%10+'0');
}
int T;
int vis[N];
int p[N];
int cnt;
int f[N];
signed main(){for(int i=2;i<=3e6+10;i++){//素数筛if(!vis[i])p[++cnt]=i;for(int j=1;j<=cnt&&i*p[j]<=3e6+10;j++)vis[i*p[j]]=1;}for(int i=1;i<=1e6;i++)f[i]=f[i-1]+(!vis[3*i+7]);//计算前缀和T=read();while(T--){print(f[read()]);endl;}
}

相关文章:

  • 【大模型:知识图谱】--4.neo4j数据库管理(cypher语法1)
  • Delft3D软件介绍及建模原理和步骤;Delft3D数值模拟溶质运移模型建立;地表水环境影响评价报告编写思路
  • Python 开发效率秘籍:PyCharm、VS Code 与 Anaconda 配置与实战全解
  • 深入理解计算机进制:从原理到 C++ 实现
  • Linux操作系统Shell脚本概述与命令实战
  • 【使用JAVA调用deepseek】实现自能回复
  • ffmpeg(三):处理原始数据命令
  • Quipus系统的视频知识库的构建原理及使用
  • 编译一个Mac M系列可以用的yuview
  • JAVA国际版一对一视频交友视频聊天系统源码支持H5+APP
  • Canal
  • L1-019 谁先倒 (15 分)
  • 每日算法 -【Swift 算法】三数之和
  • Fréchet Inception Distance(FID)
  • 自驾总结_Routing
  • Vue全局事件总线
  • Java编程常见错误与最佳实践
  • Numpy——结构化数组和Numpy文件
  • Hadoop企业级高可用与自愈机制源码深度剖析
  • Qt Quick快速入门笔记
  • 钦州网站建/网络营销公司排名
  • app免费模板下载网站/西地那非片吃了能延时多久
  • wordpress注册邮箱设置/东莞有限公司seo
  • 建设网站的公司哪个济南兴田德润怎么联系/中国万网登录入口
  • 网页建设与网站设计心德体会/购物网站有哪些
  • JSP动态网站开发实践教程/小程序推广接单平台