问题描述
兔子的烦恼(一)时间限制:1000 ms | 内存限制:65535 KB描述在一座山上有n个山洞(每个洞从0~n-1分别编号),这山上有一只兔子躲在山洞里,有一只狼,从编号为0的山洞开始入洞,每隔m-1个洞,再次入洞抓兔子,现在问,兔子能否避免这场灾难?例如:m=2 and n=6, 狼将要进入的山洞号为:0,2,4,0;输入有多组测试数据,不超过1000组;
每组有两个整数m,n(0<m,n<=1000);注意:程序以文件结束符“EOF”结束输入。输出兔子能避免这场灾难输出YES,否则输出NO;样例输入1 22 2样例输出NOYES
问题解答
回答1:因为如果两个数不互质,就能知道他们会有一个公共因子 $k$,就会有 $ n = ak, m = bk $,那么所有可能到达的位置就应该是 $ cn-dm = cak - dbk = k (ca - bd) $ 可以知道所有可能到达的位置一定是这个公共因子 $k$ 的倍数。显然不能遍历到所有的位置。如果两个数互质的话,这里的 $k$ 就是 1,显然可以遍历所有位置。

