在1000内随机创建100个素数

时间:2014-09-24 09:32:06

标签: java primes

我的编码是在1000内随机包装100个素数,其中有一部分有错误信息,我不清楚它,如下:

int date, count = 0;
for (int i = 0; i < 100; i++)
{
    date = new Integer(value.nextInt(1000));
    if(date > 1 && prime(date) != -1)
        tree.add(date);
}

它发送给我的错误消息是:Type mismatch: cannot convert from Integer to int

The method add(Object) in the type TreeSet is not applicable for the arguments (int)

但是,我认为int代表整数? 另外,date > 1 && prime(date) != -1如何运作?我在网上找不到任何例子,包括prime()等格式。

提前感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

我认为这应该有用。

int count = 0;
Integer date = 0;
for (int i = 0; i < 100; i++)
{
    date = new Integer(value.nextInt(1000));
    if(date > 1 && prime(date) != -1)
        tree.add(date);
}

答案 1 :(得分:0)

要生成一组100个不同的素数,请使用以下代码:

public Set<Integer> generatePrimes() {
    HashSet<Integer> result = new HashSet<Integer>();
    Random random = new Random();
    while (result.size() < 100) {
        int candidate = random.nextInt(1000);
        if (!result.contains(candidate) && isPrime(candidate)) {
            result.add(candidate);
        }
    }
    return result;
}

private boolean isPrime(int candidate) {
    // determine whether candidate is a prime number
}