python输入两个正整数,判断他们是否为互质数
刘彦瞳
2023-04-09 09:12:06
共 1 个回答
葛天宇
2023-04-14 23:50:40
首先,根据条件,正整数加法乘法后还是正整数,n是一个正整数。
不妨设a>b(因为a、b互质,不会相等)
n=a*x+b*y
n=a(x+(b/a)*y)
n/a=x+(b/a)*y
因为a、b互质,所以b/a是真分数;
而n>a且n>b,所以n/a必定是假分数,
令其整数部分为p,分数部分就是(n/a)-p=(n-ap)/a;(其中p为整数)
于是比较两边有:
p+(n-ap)/a=x+(b/a)*y
两边变形得:
p-m+(n-ap+am)/a=x+(by)/a;
(其中0<=m
有:
x=p-m,且by=n-ap+am
解得:
x=p-m,且y=(n-ap+am)/b
下面就是要证存在这个m,使y为正整数,也可以说是,找到正整数对(m,y)
由by=n-ap+am
得:
m=(by+ap-n)/a,而0=
所以有:
0=<(by+ap-n)/a
解得:
(n-ap)/b=
p是n的整数部分,就有n<2p=
肯定比分数部分大的,所以可得
n<2p)
于是n-ap<0,所以y最终的范围是(0,n/b),且y为正整数,可见:
确实存在这样的y,能使m为一在确定范围内的整数,反之,易知:
存在m,可使y=(by+ap-n)/a为整数。
好难的问题啊,我想了好久的。纯手打得阿,采纳以下阿
阅读原文