绵阳做手机网站,装酷网装修平台,上海模板网站建设,网站培训机构有哪些###来源于dotcpp的蓝桥杯真题
题目 2735: 蓝桥杯2022年第十三届决赛真题-取模#xff08;Python组#xff09;
给定 n, m #xff0c;问是否存在两个不同的数 x, y 使得 1 ≤ x y ≤ m 且 n mod x n mod y 。
输入格式#xff1a;
输入包含多组独立的询问。
第一…###来源于dotcpp的蓝桥杯真题
题目 2735: 蓝桥杯2022年第十三届决赛真题-取模Python组
给定 n, m 问是否存在两个不同的数 x, y 使得 1 ≤ x y ≤ m 且 n mod x n mod y 。
输入格式
输入包含多组独立的询问。
第一行包含一个整数 T 表示询问的组数。
接下来 T 行每行包含两个整数 n, m用一个空格分隔表示一组询问。 输出格式
输出 T 行每行依次对应一组询问的结果。如果存在输出单词 Yes如果不存在输出单词 No。
-----------------------------------------
思路借鉴了复杂度O(m求和)的求模
思路:由于取模运算是取两个数相除的余数而且在python中 % 与 mod函数 他们输出的结果是相同的
因此在这里就使用 % 代替。 由题目可知一共有m个数若是取模时假设我现在取k个数前k个数有
k个不同的模当我们取到第k1个数时它应该会有k1个不同的模给到我们否则它就有相同的模出现 对于第一个数的取模为1n % i i - 1 (这是不同数取模的结果) 当 n % i ! i - 1时则存在两个不
同的数取得相同的模
如果你还是晕晕的这是我的手算草稿。 请看代码
T int(input()) #接受组数#因为是问存不存在所以只要找到一次两个余数相同的数即可
def same_res(n,m):for i in range(1,m1):if n % i ! i - 1:return Yeselse:return No#循环T次
for j in range(T):n,m map(int,input().split())print(same_res(n,m))