ImageVerifierCode 换一换
格式:DOC , 页数:12 ,大小:79KB ,
资源ID:6417279      下载积分:10 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.docduoduo.com/d-6417279.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(信息学竞赛中数论常见问题.doc)为本站会员(11xg27ws)主动上传,道客多多仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知道客多多(发送邮件至docduoduo@163.com或直接QQ联系客服),我们立即给予删除!

信息学竞赛中数论常见问题.doc

1、Prime概述:1 的数 ,除了 1 和本身没有其他因子.1 既不是素数也不是合数,0 和所有的负整数同样如此.100 以内的素数2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,971.打表 (1)#define n 1000003int primen;/要判断的范围是多大,就要设置多大的数组, 对应于某个数,看它下标对应的数是 1,则是素数,否则,不是素数void getPrime()int i,j;int bound=sqrt(double)n);for(i=2;i1,b1)1);else if (!(

2、aelse return kgcd(abs(a-b),min(a,b);LCM (最小公倍数)LCM ( a, b ) = a * b / GCD ( a, b ) 实际上最好写成 a/GCD(a,b)*blong lcm(long a,long b)long c,d,sw;c=(a=b)?a:b;d=(a0?t:-t;e%=t;if(e1)res=res/x*(x-1);return res;中国剩余定理不管互质或者是不互质,只要在输入时进行互质处理, 即可. 而且,是_int64,显然通用性更强下面程序的输入输出格式:3/每组有几组数据3 2/除数 余数5 37 2#include usi

3、ng namespace std;_int64 x,y,t;_int64 extend_gcd(_int64 a,_int64 b) /return gcd(a,b) 得到 x,yif(b = 0)x = 1;y = 0;return a;else_int64 temp = extend_gcd(b,a%b);t = x; x = y;y = t - a/b*y;return temp;int main()_int64 a1,a2,r1,r2,c,gcd,temp;bool yes;int n;freopen(“G:/in.txt“,“r“,stdin);while(scanf(“%d“,sc

4、anf(“%I64d %I64d“,/a 是除数,r 是余数for(int i=0 ;i#include using namespace std;string week = “Saturday“, “Sunday“, “Monday“, “Tuesday“, “Wednesday“, “Thursday“, “Friday“;int day = 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31;/* 判断是否闰年 */bool isleap(intelse return false;/* 返回一年的最大天数 */int maxday(intel

5、se return 365;/* 得到年份 */int getyear(intwhile (days maxday(year)days -= maxday(year);year+;return year;/* 得到月份 */int getmonth(int year, intif (isleap(year) day2 = 29;else day2 = 28;while (days daymonth)days -= daymonth;month+;return month;/* 得到天数 */int getday(int/* 得到星期 */string getweek(int/* 主函数 */i

6、nt main()int days;int y, m, d;string wk;while(cin days days+;y = getyear(days);m = getmonth(y, days);d = getday(days);cout #include#include#include#includeusing namespace std;#define bigint _int64/这道题目不能用无符号数,不然 wa/欧几里德,求最大公约数bigint gcd(bigint a,bigint b)while (b)bigint c = a % b;a = b;b = c;return

7、a;/a*b%nbigint product_mod(bigint a,bigint b,bigint n)bigint tmp = 0;while (b)if (bif (tmp=n) tmp-=n;a=n) a-=n;b=1;return tmp;/am%nbigint power_mod(bigint a,bigint m,bigint n)bigint tmp = 1;a%=n;while (m)if (ma = product_mod(a,a,n);m=1;return tmp;int pri = 2,3,5,7,11,13,17,19,23,29;/Miller_Rabin 大素数

8、判断bool Miller_Rabin(bigint n)/n,s.取 s 个随机数值 a,进行 a 是 n 为和数的证明判断if (n=1,k+;for (i = 0 ; i =n) return true;a = power_mod(prii,m,n);/幂取模if (a=1) continue;for (j = 0 ; j 1 bigint A = rho(T);bigint B = rho(N / T);return AB?A:B;/扩展欧几里德,求 ax+by=gcd(a,b)中的 x,y,其中 d=gcd(a,b)void Gcd(bigint a,bigint b,bigint

9、return;Gcd(b,a%b,d,y,x);y -= x * (a/b);/求 a 关于 n 的逆bigint inv(bigint a,bigint n)bigint d,x,y;Gcd(a,n,d,x,y);if (d=1) return ( x % n + n ) % n;else return -1;bigint P,Q;/ N = P * Qbigint T;/T = (P - 1) * (Q - 1)bigint C,E,N;int main()freopen(“G:/in“,“r“,stdin);srand(unsigned int)time(NULL);/已知的是密文 ,公

10、钥,N (= P * Q).while (scanf(“%I64d%I64d%I64d“,/找两个大素数,使得 P*Q=N.现在是已知 N,去求这两个大素数Q = N / P;T = (P - 1) * (Q - 1);/其实 T 就是 phiN,N 的欧拉函数,因为 P,Q 都是素数,所以(P-1)*(Q-1)就是他的欧拉函数bigint D = inv(E,T);/求 E 关于 T 的逆元, 因为这里是 gcd(E,T)=1,而又要 E*D%T=1bigint M = power_mod(C,D,N);/M = (CD)%N,如果是求 C,就是 C=(ME)%Nprintf(“%I64dn“,M);

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报