密码(GCD有关)
来源:互联网 发布:axurerp7.0破解版mac 编辑:程序博客网 时间:2024/06/04 01:11
Problem
并且满足任意的
已知有
Solution
如果有
x 是密码,那么Gcd(x,n) 一定是密码.- 证明:因为
x∗k % n 一定是密码,x∗k−n∗y=Gcd(x,n) ,其中的k,y 一定有解.
- 证明:因为
所以
t=Gcd(b[k],n) 一定是密码.把
t 的因子全部求出来,如果一个因子能被b[1..k−1] 当中的任何一个数整除.那么这个因子都不合法,去除不合法的因子后,最小的因子
w 即为答案.这里有个技巧关于如何把因子能被
b[1..k−1] 当中的数整除的去掉.我们可以先把
b[1..k−1] 与t 的最大公因数给删了.然后再把最大公因数分解一下,其所有的因数也是不行的,或者可以直接暴力枚举一下.
且
a{}=w,2w,3w,……kw ,答案为n/w .
#include <cstdio>#include <iostream>#include <algorithm>#define fo(i,a,b) for (i = a; i <= b; i++)#define Maxn 300000using namespace std;int gcd(int a,int b) { return b?gcd(b,a%b):a; }int cnt,i,j,ans,n,k,f[Maxn],q[Maxn],a[Maxn];int main(){ scanf("%d%d",&n,&k); fo(i,1,k) scanf("%d",&a[i]); a[k] = gcd(a[k],n); fo(i,1,k-1) a[i] = gcd(a[i],a[k]); for (i = 1; i * i <= a[k]; i++) if (a[k] % i == 0) q[++cnt] = i, q[++cnt] = a[k] / i; if (i*i==a[k]) cnt--; sort(q+1,q+cnt+1); fo(i,1,k-1) f[lower_bound(q+1,q+cnt+1,a[i]) - q] = 1; fo(i,1,cnt) if (f[i]) fo(j,1,i-1) if (q[i] % q[j] == 0) f[j] = 1; for(ans = 1; f[ans]; ans++); printf("%d\n",n/q[ans]);}
收获:
1.
2.
阅读全文
0 0
- 密码(GCD有关)
- GCD使用(一)执行与UI有关的操作
- 有关java对压缩文件的加密(通过密码解密)
- 有关密码本小项目的一些知识点总结(二)
- 几个有关iOS的几个常见问题-----多线程(NSthread、NSOperation、GCD)
- 有关iOS GCD上的一些资料。
- 有关GCD和LCM的公式
- 有关iOS GCD上的一些资料。
- 有关iOS GCD上的一些资料
- 有关iOS GCD上的一些资料。
- 有关电脑密码破解问题
- 又见GCD(GCD)
- 有关对称密码的几个思考
- 有关cmos密码破解及原理
- 有关JAVA修改 Lotus的密码
- 有关Oracle用户名和密码的问题
- 有关mysql中对密码的编码
- 有关sql sa的 密码修改问题
- Android自定义工具类TimerThread
- Python下"No module named _tkinter"问题解决过程总结
- 用java提交一个Spark应用程序
- Spark性能调优-Shuffle调优[转]
- 洛谷p1804
- 密码(GCD有关)
- 还有3天,公布下目前后台收到的点赞数较高的几位...
- 约瑟夫环(非递推版)
- Hadoop 的三种运行模式以及伪分布式模式配置
- “风暴”洗礼后,暴风冯鑫和迅雷陈磊会怎样回顾这内忧外患一年
- 科大讯飞会是典型的AI泡沫吗
- Octave教程四:Plotting Data
- 常见的排序算法
- 迅雷玩客币更名为"链克";朱啸虎回应ofo摩拜是否合并;科学家计划在月球附近建国际空间站丨价值早报