素数集合-countPrimesSmallerThanX

我希望有人能帮助我。

我的任务是创建一个将所有素数都计数到x的集合。在之前的任务中,我设法编写了一种方法来检查数字是否为质数。

public boolean isPrime(int n){
    for(int i=2; 2*i<n; i++) {
    if(n%i==0)
    return false;
   }
    return true;
}

提示是集合不带整数,因此我可以使用自动装箱来解决此问题。而且我必须在API中查找Integer。

但是我完全不知道如何解决这个问题。我是否必须编写一个字符串类并使用该方法用质数“填充”它?如果有人可以解释解决方案,将非常感谢。

编辑:我写了这个,但是最后它显示了“ return primes;”的错误,说:不兼容的类型:java.util.ArrayList无法转换为int。 如果我把它遗漏了,它说错过了回报

 public int countPrimesTill100(){

             ArrayList<Integer> primes = new ArrayList<>();

              for(int num=2; num<100; num++){
           boolean isPrime=true;
               for(int div=2; div<num && isPrime; div++){
                   if(num%div==0)
                        isPrime=false;
           }
           if(isPrime){
                primes.add(num);
            }
        }
        System.out.println(primes.size());
        return primes;
    }```
kathy86 回答:素数集合-countPrimesSmallerThanX

由于您已经具有用于检查数字是否为质数的算法,因此可以创建一个List来实现Collection,如下所示:

List<Integer> primes = new ArrayList<>();

,然后如果您的电话号码是素数,则将其添加到列表中,如下所示:

primes.add(n);

希望这会有所帮助。

修改

发生此错误是因为您的方法返回类型只是一个int

您的方法应如下所示:

public ArrayList<Integer> countPrimesTill100() {
  //do your sutff here.
}

你应该没事。

我建议您先在Google上搜索这些内容,然后再在此处写下问题,因为通过谷歌搜索可以轻松解决这些问题。

抱歉,我的回复很晚。

本文链接:https://www.f2er.com/3045620.html

大家都在问