与上一期相似,我无法在屏幕上打印值。我测试了主标记循环,它确实生成了正确的数字但是打印语句没有打印值,所以我无法验证代码。代码附在下面。很少有知名人士指导我使用BigInteger,但我的问题很少,所以我也会研究它。
提前感谢您的所有帮助和帮助。
package javaapplication1;
import java.util.Random;
import java.math.*;
public class DH {
public static void main(String[] arg) {
int q;
int z = 10000;
Random generator = new Random(0);
q = generator.nextInt(50000);
double sk1 = generator.nextDouble();
double sk2 = generator.nextDouble();
for (int p = generator.nextInt(z); p < 50000; p++) {
int j;
for (j = 2; j < p; j++) {
int n = p % j;
if (n == 0) {
break;
}
}
if (p == j) {
double a = Math.pow(q, sk1);
double pk1 = a % p;
double b = Math.pow(q, sk2);
double pk2 = b % p;
if (pk1 == pk2) {
System.out.println("true");
System.out.println(p);
System.out.println(q);
System.out.println(sk1);
System.out.println(sk2);
System.out.println(pk1);
System.out.println(pk2);
System.out.print(" " + i);
}
}
}
}
}
答案 0 :(得分:0)
由于sk1和sk2具有不同的值(因为它们是随机的),所以pk1和pk2也具有不同的值。只有当你可以发生输出的情况是它们相等时(这几乎是不可能的)。顺便说一下,最后一个输出语句中的“i”变量是什么?