检查数字是否互质
To check whether the numbers are coprime or not
检查数字是否互质。
我实际上在这里使用了一个更简单的逻辑,它完全有意义,但出于某种原因,我无法使用这段代码得到正确的答案。请检查代码并让我知道您的想法:)
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
。
P.S。请注意,您的算法会错误地将两个 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')
路口returns一组。
检查数字是否互质。 我实际上在这里使用了一个更简单的逻辑,它完全有意义,但出于某种原因,我无法使用这段代码得到正确的答案。请检查代码并让我知道您的想法:)
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
。
P.S。请注意,您的算法会错误地将两个 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')
路口returns一组。