最大公约数和最小公倍数问题pascal最优输入二个正整数x0,y0(2

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/04 20:56:02
最大公约数和最小公倍数问题pascal最优输入二个正整数x0,y0(2

最大公约数和最小公倍数问题pascal最优输入二个正整数x0,y0(2
最大公约数和最小公倍数问题pascal最优
输入二个正整数x0,y0(2

最大公约数和最小公倍数问题pascal最优输入二个正整数x0,y0(2
先最小公倍数y0除以最大公约数x0得到一个新数a,
求出把a分解为a=p1*q1=p2*q2=p3*q3=……=pn*qn的形式(其中p1,q1皆为整数,且p1,q1互质p2,q2……等类似)
则对应的p,q为
p=p1*x0=p2*x0=p3*x0=……
q=q1*x0=q2*x0=q3*x0=……
优化:
此题只需要知道有多少种不同的方式
所以可以对
a分解质因数
a=m1^a2*m2^a2*m3^a3*……
如a=700分解为
a=2^2*5^2*7^1
那么p1和p2互质就成为
将这些分解出来的质因数m“给”p1还是p2的问题了(“给”要不都给,要不不给一个,例如700有两个2的质因子,此时要不将2全部分给p1,要一个都不给,因为p1,p2需要互质,如果一个p1,p2一人一个2,则必不互质)
对于一个质因数m[i],只有两种选择,给p1,给p2,而定下m[i]后,m[i+1]后就有两种选择,所以如果a有n个不同的质因数,则用答案是2^n.
所以只要判断a有多少不同的质因数.所以……
代码等下给,我先喝口水来,你先理解理解.