《计算代数与计算数论.doc》由会员分享,可在线阅读,更多相关《计算代数与计算数论.doc(4页珍藏版)》请在金锄头文库上搜索。
1、 大素数的生成#include #include /大素数的生成int euild(int a,int b);main()int n,i,t,b;printf(请输入一个奇数和安全系数(用逗号隔开):);scanf(%d,%d,&n,&t);i=1; b=rand()%(n-3)+2;if(euild(b,n)=1) for(;it)printf(该奇数很可能是一个素数!n);elseprintf(该奇数是不一个素数!n它对%d不成立,b);int euild(int a,int b)int r3,s3,t3,z,q;if(a0 i=i+1; n(i)=mod(N,2); N=fix(N/2)
2、;endif n(1)=0 a(1)=1;else a(1)=mod(b,m);endb(2)=mod(b*b,m);for j=2:1:i if n(j)=0 a(j)=a(j-1); else a(j)=mod(a(j-1)*b(j),m); end b(j+1)=mod(b(j)*b(j),m);endanswer=a(j) 求两个数的最大公因数#include main()int r3,s3,t3,a,b,z,q;printf(请输入两个整数:);scanf(%d,%d,&a,&b);if(ab)z=a;a=b;b=z;r0=a;r1=b;s0=1;s1=0;t0=0;t1=1;doq
3、=r0/r1;s2=s0-q*s1;t2=t0-q*t1;r2=r0-q*r1;s0=s1;s1=s2;t0=t1;t1=t2;r0=r1;r1=r2;while(r1!=0);printf(%d*%d+%d*%d=%dn,s0,a,t0,b,r0); 求一个奇素数的全部原根p=input(请输入一个奇素数:);%找出指数w=factor(p-1);q=(p-1)./w;i=1;while i=length(q) if q(i)=q(i+1) q(i+1)=;i=i-1; end i=i+1;end%找出一个元根i=2;while i0 i=i+1; n(i)=mod(N,2); N=fix(N/2);endif n(1)=0 a(1)=1;else a(1)=mod(b,m);endb(2)=mod(b*b,m);for j=2:1:i if n(j)=0 a(j)=a(j-1); else a(j)=mod(a(j-1)*b(j),m); end b(j+1)=mod(b(j)*b(j),m);end y=a(j);end