随机生成数字,直到它们完全分开

时间:2014-04-29 13:55:23

标签: java

我在这里遇到了一个小问题。基本上我的程序下面只生成两个随机数并将它们分开。

在此之前我插入一个语句,如果num1不能被num2整除,那么num2必须生成1到“num1”之间的数字,直到它可被整除。

但最后它不断给我一个不可分的数字(或基本上给出小数点)。我尝试在互联网上寻找一个例子,并使用模数运算符很好地理解。我在哪里错了?我只想让两个数字都可以整除。

以下是我的代码:

int num1, num2, real_ans;  
Random randomGenerator = new Random();  

num1 = randomGenerator.nextInt(100) + 1;  
num2 = randomGenerator.nextInt(100) + 1;            

if (num1%num2!=0) {  
  do {  
    num2 = randomGenerator.nextInt(num1) + 1
  } while(num1%num2==0);  
}  
real_ans = num1 / num2;  

2 个答案:

答案 0 :(得分:2)

将do / while循环更改为:

do{  
  num2 = randomGenerator.nextInt(num1) + 1
} while(num1 % num2 != 0); 

(请注意!=)。

这循环直到数字完全分开。

答案 1 :(得分:0)

你正在迭代条件,如果num1可被num2整除,请继续迭代。将条件更改为do{...}while (num1%num2 != 0);

您应该能够找到一个可以将num1与该代码分开的数字。它仍然无法工作的唯一情况是num1为素数,因此我建议您检查num1是否为素数而仅生成num2num1为不是素数。