题目转载:/s/1/53
题目描述:
输入两个正整数m和n,判断m和n是否互质(即最大公约数为1),是则输出Yes,否则输出No。
输入格式:
输入两个整数m和n,中间用空格隔开。
输出格式:
如互质输出Yes,否则输出No。
互质:
互质是公约数只有1的两个整数,叫做互质整数。公约数只有1的两个自然数,叫做互质自然数。后者是前者的特殊情形。
公约数:
公约数,亦称“公因数”。它是指能同时整除几个整数的数。如果一个整数同时是几个整数的约数,称这个整数为它们的“公约数”;公约数中最大的称为最大公约数。对任意的若干个正整数,1总是它们的公因数。
集合:
集合(set)是一个无序的不重复元素序列。可以使用大括号{ }或者set()函数创建集合,注意:创建一个空集合必须用set()而不是{ },因为{ }是用来创建一个空字典。
intersection() 方法:
intersection() 方法用于返回两个或更多集合中都包含的元素,即交集。intersection() 方法语法:set.intersection(set1, set2…etc)返回值:返回一个新的集合。
代码:
m, n = (input().split())m, n = int(m), int(n)# 求出m和n的所有因数,分别加到各自的因数集合里m_factor_set = set()n_factor_set = set()for m_factor in range(1, m+1):if m % m_factor == 0:m_factor_set.add(m_factor)for n_factor in range(1, n+1):if n % n_factor == 0:n_factor_set.add(n_factor)# 如果两个因数集合的交集中只有1这个元素,那么m和n互质if m_factor_set.intersection(n_factor_set) == {1}:print('YES')else:print('NO')
运行结果:
题目52:输入两个正整数m和n 判断m和n是否互质(即最大公约数为1) 是则输出Yes 否则输出No。