数学好的,正经学习过数论的同志们,进来看看这个问题现有一公式:X^a mod b c.给出a,b,c,求出所有满足条件
数学好的,正经学习过数论的同志们,进来看看这个问题 现有一公式:X^a mod b = c.给出a,b,c,求出所有满足条件的X。 输入包括多组数据,每组数据三个正整数1<=a,b,c<=10^7。 每组数据输出若干行,每一行代表了满足方程的一个X的解,解的顺序按照从小到大输出,最后输出一个空行。 没有解输出“No Solution!”
这个问题其实是求(x mod b)^a mod b 是否等于c,那么从0开始到b-1循环检测这个等式, 如果成立,设x mod b = d,e是任意整数,则下面的解都是我们要的结果: x=be+d [解决办法] 这个问题其实是求(x mod b)^a mod b 是否等于c, 循环一下就可以求成全部解,解法如下: for i = 0 to b - 1 do if i^a mod b = c then x = b * d + i (d是任意整数)是其中一组解
[解决办法] 不用数论,给个简单的办法 不断生成两个数x, y
x = 1^a, 2^a, 3^a, 4^a ... y = 1*b+c, 2*b+c, 3*b+c ...