看到一个题目,就是产生2-100范围的随机数,然后判断是否为素数。
开始用Math.random()经过转换int发现全是0,不明白,搜索javadoc后,对于这个函数,是这样讲的:
Returns a double
value with a positive sign, greater than or equal to 0.0
and less than 1.0
.
强制转换都成0了。
再上网找了下,有这么一个函数Random.nextInt(int n),说明是产生从0到声明范围的int,
Returns a pseudorandom, uniformly distributed int value between 0 (inclusive) and the specified value (exclusive).
所以2-100,就可以用min和max对应两个值,nextInt(max-min+1)+min.
产生范围的随机数代码如下:
int createRandom(int min, int max) {
Random random = new Random();
return random.nextInt(max-min+1)+ min;
}
判断素数。
public boolean isSushu(int number){
int m = (int)Math.sqrt(number)+1;
if(number == 0)return false;
for(int i=2; i<m; i++){
if(number%i==0)return false;
}
return true;
}