输入 n n n 和 k k k,判断 n n n m o d mod mod 1 1 1 ~ k k k 每个数的余数是不是都不相同
输入数据包含多组,每行两个数字 n n n、 k k k,空格隔开。 以 0 0 0 0 0 0结束
对于每行的有效数据,如果所有余数均不相同,输出 Y e s Yes Yes,否则输出 N o No No
说明/提示 n , k ≤ 1 0 18 n,k≤10^{18} n,k≤1018 【样例解释】 对于 4 4 4 4 4 4 由于 4 4 4 m o d mod mod 1 1 1 和 4 4 4 m o d mod mod 2 2 2 都是 0 0 0,所以是 N o No No 对于 5 5 5 3 3 3 由于 5 5 5 m o d mod mod 1 = 0 1=0 1=0 5 5 5 m o d mod mod 2 = 1 2 = 1 2=1 5 5 5 m o d mod mod 3 = 2 3 = 2 3=2 所以余数各不相同,输出 Y e s Yes Yes
输入 n n n 和 k k k,判断 n n n m o d mod mod 1 1 1 ~ k k k 每个数的余数是不是都不相同
我们将这段话分析后,会发现: n n n m o d mod mod 1 = 0 1=0 1=0 为保证每个数的余数都不相同,就需要 n n n m o d mod mod 2 = 1 2=1 2=1 以此类推: n n n m o d mod mod 3 = 2 3=2 3=2 n n n m o d mod mod 4 = 3 4=3 4=3 n n n m o d mod mod 5 = 4 5=4 5=4 …… n n n m o d mod mod i = i − 1 i=i-1 i=i−1 也就是说 ( n + 1 ) (n+1) (n+1) m o d mod mod i = 0 i=0 i=0 ( 1 ≤ i ≤ k ) (1\le i \le k) (1≤i≤k) 然后我们可以发现,这个数必须是 k ! k! k! 的倍数 − 1 -1 −1,而 20 ! 20! 20! 就已经爆 l o n g long long l o n g long long 了,所以当 k > 20 k>20 k>20 或 k ≥ n k\ge n k≥n 时肯定不能满足条件 (我乱讲的) ,所以可以排除。