- 1、本文档共12页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
程序设计与问题求解
——数论相关问题
数论相关问题
数论问题范围很广
• 整数的整除性
• 带余除法
• 奇数与偶数 最小公倍数问题
• 约数与倍数
• 质数与合数 求小于n的质数
• 整数的分解与分拆
• 进制转换
• ……
求两个数的最小公倍数
假设求 8 和 20 的最小公倍数
方法一:列举法
从小到大先找出8的倍数,再判断这个数是否是20的倍数,从中找出最小的、公共的一个。
考察 :8 ,16 ,24 ,32 ,…….
方法二:分解质因数法
分别把两个数分解质因数 ,8和20公倍数里,应当既包含8的所有质因数,又包含20的所
有质因数。对于两个数共有的质因数,比如2 ,在8中出现3次,在20中出现2次,则取3 ;
再把独有的质因数都取出来,把它们相乘,积就是最小公倍数,具体做法如下 :
8 =2×2×2
20 =2×2×5
8和10的最小公倍数是:2×2×2×5 =40
求两个数的最小公倍数
方法一:列举法的伪代码描述
A=8, B=20
k =A
i=1
while (k%B != 0 )
{
k =i*A
i=i+1
}
输出k
求两个数的最小公倍数
方法二 :分解质因数法算法实现分析
按照从小到大的顺序查找质因数 ,即判断A、B是否有因子2 ,3 ,5 ,7 ,……
A=6 =2×3 A=6/2=3 A=3/3 =1 A=1不变
B=10=2×5 B=10/2=5 B=5 不变 B=5/5 =1
A、B有因子2 A有因子3 B有因子5
记P0=2 记P1=3 记P2=5
最小公倍数 = P0 × P1× P2 = 30
A=8 =2×2×2 A=8/2=2 ×2 A=2 ×2 错误原因:没有正确
B=20=2×2×5 B=10/2=2×5 B=10/5 =2 计算因子的重复次数
应该用循环方式找出
A、B有因子2 无因子3 ,B有因子5 , 因子的重复次数
记P0=2 记P1=5
最小公倍数 ?= P0 × P1=10
求两个数的最小公倍数
方法二 :分解质因数法算法实现分析
按照从小到大的顺序查找质因数 ,即判断A、B是否有因子2 ,3 ,5 ,7 ,……
A=8 =2×2×2 A=2/2=1 A=1
B=20=2×2×5 B=5 不变 B=5/5 =1
A、B有因子2 ,重复2 无因子3 ,B有因子5 ,
次,记P0=2 ,P1=2 重复1次 ,记P3=5
A=8/2/2=2
B=20/2/2=5
都应用循环方式找出
A仍有因子2 ,重复1次,
因子的重复次数
记P2=1
最小公倍数 = P0×P1×P2×P3
= 2*2*2*5
= 40
求两个数的最小
文档评论(0)