算法 – 如何搜索给定x的10 ^n≡1mod(9x)的最小n

对于给定的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类型.

点赞