我正在尝试制作一个列出1至100,000的素数的程序。我创建了以下代码,但是我收到一条错误,指出“无效的方法声明;需要返回类型”
import java.util.*;
public class primenumbers
{
public static void main (String[] args)
{
ArrayList<Integer> A = new ArrayList<Integer>();
listPrime(A);
for(int b = 0; b <= A.length(); b++)
{
System.out.println(A[b]);
}
}
public static boolean isPrime(int number)
{
for(int f = 2; f <= (number/2) + 1; f++)
{
if(number % f == 0)
{
return true;
}
}
return false;
}
public static listPrime(ArrayList<Integer> A)
{
for(int i = 1; i <= 100000; i++)
{
if(isPrime(i)==false)
{
A.add(i);
return A;
}
}
return A;
}
}
我猜它的东西非常明显,我只是在俯视。感谢。
答案 0 :(得分:1)
您尚未为listPrime
函数添加/指定返回类型。
使用以下public static ArrayList<Integer> listPrime(ArrayList<Integer> A)
答案 1 :(得分:1)
有很多错误
public static void main (String[] args)
{
ArrayList<Integer> A = new ArrayList<Integer>();
listPrime(A);
for(int b = 0; b < A.size(); b++) // use size and < not <=
{
System.out.println(A.get(b)); // use get and round brackets
}
}
public static boolean isPrime(int number)
{
for(int f = 2; f <= (number/2) + 1; f++)
{
if(number % f == 0)
{
return true;
}
}
return false;
}
public static void listPrime(ArrayList<Integer> A) // return void
{
for(int i = 1; i <= 100000; i++)
{
if(isPrime(i)==false)
{
A.add(i);
//return; // keep going
}
}
return; // not really needed
}