bzoj#P3239. Discrete Logging
Discrete Logging
题目描述
Given a prime , an integer , and an integer , compute the discrete logarithm of , base , modulo . That is, find an integer such that
输入格式
Read several lines of input, each containing separated by a space.
输出格式
For each line, print the logarithm on a separate line. If there are several, print the smallest; If there is none, print "no solution".
The solution to this problem requires a well known result in number theory that is probably expected of you for Putnam but not ACM competitions. It is Fermat's theorem that states
For any prime and some other (fairly rare) numbers known as base-B pseudoprimes. A rarer subset of the base-B pseudoprimes, known as Carmichael numbers, are pseudoprimes for every base between 2 and P-1. A corollary to Fermat's theorem is that for any
5 2 1
5 2 2
5 2 3
5 2 4
5 3 1
5 3 2
5 3 3
5 3 4
5 4 1
5 4 2
5 4 3
5 4 4
12345701 2 1111111
1111111121 65537 1111111111
0
1
3
2
0
3
1
2
0
no solution
no solution
1
9584351
462803587
数据规模与约定
- For of Data, , , .