对于给定的x,我需要计算公式10 ^n≡1(mod 9x)的最小n等于true
我的算法很简单.对于i = 1到inf,我循环直到得到结果.如果gcd(10,x)= 1,总会有结果.如果我没有得到结果,我将i增加1.
对于具有大值分解的大素数或数字来说,这实在是很慢,所以我问是否有另一种方法可以更快地计算它.我已尝试使用线程,让每个线程在下一个10 ^ i计算.性能有点好,但大质量仍未完成.
最佳答案 我刚试过这个例子,它运行不到一秒钟:
public class Main {
public static void main(String[] args) {
int n = 1;
int x = 954661;
int v = 10;
while (v != 1) {
n++;
v = (v * 10) % (9*x);
}
System.out.println(n);
}
}
对于较大的x值,变量应为long类型.