【发布时间】:2020-01-14 13:11:56
【问题描述】:
取 0 - 1000 个数字,并找出该范围内的质数。将质数存储在二维数组中,第一维表示范围 0-100、100-200 等。而第二维表示该范围内的素数...
要存储在二维数组中,我们需要知道行数和列数..有人可以帮助我吗?...findPrimNumbers 方法返回整数 []...但是我必须将质数存储在二维中整数数组。 这是我写的代码。
public class PrimeNmbers2D
{
public static boolean isPrime(int number)
{
boolean status=true;
for(int n=0;n<=number;n++)
{
int count=0;
for(int i=1;i<=number;i++)
{
if(n%i==0)
{
count++;
}
}
if(count==2)
{
status=true;
}
}
return status;
}
public static Integer[] findPrimeNumbers(int start,int end)
{
ArrayList<Integer> primes=new ArrayList<>();
for(int from=start;from<=end;from++)
{
if(isPrime(from))
{
primes.add(from);
}
}
return primes.toArray( new Integer[primes.size()]);
}
public static void main(String[] args)
{
int[][] primeGroups=new int[10][];
for(int i=0;i<10;i++)
{
int start=0;
int end=100;
for(int j=0;j<10;j++)
{
primeGroups[i][j]=findPrimeNumbers(start, end);
}
start=end+1;
end=end+100;
}
}
}
【问题讨论】:
-
您的问题到底是什么?您面临哪些问题? “有人能帮我吗?” - 是的,如果你明确你的问题。
-
如果我可以给你一些建议,你的代码是不必要的复杂,简化它。例如。变量名什么也没说。如果您只拨打您的号码
num,那么您将不记得该号码的用途。您还有一个名为intArr的列表和一个数组intArray(这是哪个?)。我想说的是,不要缩写(除了像i, j, k这样的索引变量)并明智地选择名称。还有一件事,当您调用方法isSomething时,人们期望一个布尔值(是还是不是?)而不是列表。抱歉,我帮不上忙。我相信您会很快找到解决方案(列表是个好主意) -
@Amongalen 我的问题是我必须找到 0 到 1000 之间的素数并将所有素数存储在二维数组中