如何解决检查数字是否互质
检查数字是否互质。 我实际上在这里使用了一个更简单的逻辑,这完全有意义,但由于某种原因,我无法使用此代码获得正确答案。请务必检查代码,让我知道您对此有何看法:)
m = int(input())
n = int(input())
setm = set()
setn = set()
for i in range(1,m+1):
if (m%i==0):
setm.add(i)
for j in range(1,n+1):
if (n%j==0):
setn.add(j)
if setm.intersection(setn) == '1':
print('Coprime')
else:
print('Not coprime')
解决方法
这一行
if setm.intersection(setn) == '1':
没有正确进行比较。有很多方法可以修复它 - 例如,您可以检查交叉点的长度:
if len(setm.intersection(setn)) == 1:
这种比较背后的想法是,出于数学原因,1
将始终位于两个除数集合中,因此如果集合在单个项上相交,则它必须是 1
。
附言请注意,您的算法会错误地将两个 1 识别为互质;这应该通过一些额外的检查来解决。
,m = int(input())
n = int(input())
setm = set()
setn = set()
for i in range(1,m+1):
if (m%i==0):
setm.add(i)
for j in range(1,n+1):
if (n%j==0):
setn.add(j)
if setm.intersection(setn) == {1}:
print('Coprime')
else:
print('Not coprime')
交集返回一个集合。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。