- 1、本文档共20页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
信息学跟数学基础
第一章 有关数论的算法
1.1 最大公约数与最小公倍数1.2 有关素数的算法1.3 方程ax+by=c的整数解及应用
1.4 求a^b mod n 1.1最大公约数与最小公倍数
1.算法1: 欧几里德算法求a,b的最大公约数?function gcd(a,b:longint):longint;?begin?if b=0 then gcdd:=a?else gcd:=gcd(b,a mod b);?end;2.算法2:最小公倍数acm=a*b div gcd(a,b);
3.算法3:扩展的欧几里德算法,求出gcd(a,b)和满足gcd(a,b)=ax+by的整数x和y?function exgcd(a,b:longint;var x,y:longint):longint;vart:longint;beginif b=0 then??begin? result:=a;? x:=1;? y:=0;?endelse?begin?result:=exgcd(b,a mod b,x,y);?t:=x;?x:=y;?y:=t-(a div b)*y;?end;end;
(理论依据:gcd(a,b)=ax+by=bx1+(a mod b)y1=bx1+(a-(a div b)*b)y1=ay1+b(x1-(a div b)*y1))
1. 2有关素数的算法
1.算法4:求前n个素数:
program BasicMath_Prime;constmaxn=1000;varpnum,n:longint;?p:array[1..maxn] of longint;function IsPrime(x:longint):boolean;var i:integer;beginfor i:=1 to pnum do?if sqr(p[i])=x then? begin?? if x mod p[i]=0 then???? begin????? IsPrime:=false;?????? exit;???? end;?end?
?else? begin?? IsPrime:=true;?? exit;?end;IsPrime:=true;end;procedure main;var x:longint;beginpnum:=0;x:=1;while(pnumn) dobegin?inc(x);?if IsPrime(x) then? begin?? inc(pnum);?? p[pnum]:=x;? end;end;
end;procedure out;var i,t:integer;beginfor i:=1 to n do?begin
?write(p[i]:5);t:=t+1;
?if t mod 10=0 then writeln;
?end;end;beginreadln(n);
main;out;end.
2.算法5:求不大于n的所有素数
program sushu3;const maxn=10000;vari,k,n:integer;a:array[1..maxn] of integer;beginreadln(n);for i:=1 to n do a[i]:=i;a[1]:=0;i:=2;while in dobegin?k:=2*i;?while k=n do? begin? a[k]:=0;? k:=k+i;? end;?i:=i+1;?while (a[i]=0) and (in) do i:=i+1;end;k:=0;for i:=1 to n do?if a[i]0? then?????? begin?????? write(a[i]:5); k:=k+1;?????? if k mod 10 =0 then writeln;?????? endend.
3.算法6:将整数分解质因数的积
program BasicMath_PolynomialFactors;constmaxp=1000;varpnum,n:longint;num,p:array[1..maxp] of longint;procedure main;var x:longint;begin?fillchar(num,sizeof(num),0);?fillchar(p,sizeof(p),0);?pnum:=0;?x:=1;?while(n1) do? begin? inc(x);? if n mod x=0 then??? beg
您可能关注的文档
最近下载
- 第一章 2.2 水量平衡.ppt
- 《GB/T 19326-2022锻制支管座》.pdf
- 2022年11月陕西省从优秀村社区干部中考试录用200名乡镇街道机关公务员上岸冲刺卷I含答案详解版(3套).docx VIP
- 2020年银行业从业人员职业操守和行为准则.pdf VIP
- 转预备党员思想汇报【银行】.pdf VIP
- 【新教材】人教版(2024)七年级上册英语Unit 4 My Favourite Subject教案.docx
- 米厂恒温仓库工程设计方案.docx
- 2024年党校入党积极分子培训考试必考重点知识汇编(共160题).doc VIP
- 《世界经典神话与传说故事》 测试题及答案.pdf
- 智能制造设备安装与调试职业技能等级标准(2021年).pdf
文档评论(0)