传送门:http://acm.jlu.edu.cn/joj/showproblem.php?pid=2179
思路:n ^ k - 1 = (n - 1) * (n ^ (k - 1) + n ^ (k - 2) + ...... + n + 1);
判断n ^ k - 1能否被(n - 1) ^ 2整除,只需判断后面那个式子被(n - 1)整除。
那个式子mod(n - 1)为k,只要判断k的值就行了。
代码:
#include <cstdio>
using namespace std;
int main()
{
int n, m;
while (scanf("%d%d", &n, &m) != EOF)
{
if (m % (n - 1) == 0)
printf("yes\n");
else
printf("no\n");
}
return 0;
}