【发布时间】:2017-11-11 04:31:31
【问题描述】:
我是编程新手,我有一个任务要做,但我很挣扎,我不确定我做错了什么。我尝试了许多不同的方法并进行了修改以尝试使其正常工作,但我就是想不通。
我有一个 200 个数组,每个数组都使用 Arrays.fill 填充数字 10,我需要拥有它,以便将素数位置的所有数字替换为 -1 并打印出数组.例如10 -1 -1 10 -1 10...等
这就是我现在拥有的-
public static void main(String[] args) {
int[] test = new int[200];
Arrays.fill(test, 10);
print(numbers);
System.out.println();
print(primeReplace(test));
}
public static void print(int[] a) {
for(int i = 0; i < a.length; i++) {
System.out.print(a[i] + " ");
}
}
public static int[] primeReplace(int[] a) {
System.out.println("Prime: ");
for(int i = 1; i < a.length; i++)
{
if(isPrime(i))
{
a[i] = -1;
}
}
return a;
}
public static boolean isPrime(int b) {
for(int i = 2; i < b; i++)
{
if (b % i == 0)
return false;
}
return true;
}
返回 -1 -1 -1 -1 10 -1 10 -1 10 10 10 -1 10 -1 10 10 10 -1 10... 等。
我也试过这个 -
public static int[] primeReplace(int[] a) {
System.out.println("Prime: ");
for(int i = 0; i < a.length; i++)
{
for(int j = 2; j < i; j++)
{
if(i % j == 0)
{
a[i] = -1;
}
}
}
return a;
}
返回:10 10 10 10 -1 10 -1 10 -1 -1 -1 10 -1 10... etc.
我可能错过了一些非常简单的东西,因为我不擅长数学,但这让我发疯,我只是不明白,所以任何帮助将不胜感激。
【问题讨论】:
-
10 -1 -1 10 -1 10??数组索引以0开头。 -
提示:质数是一个大于一的数,它可以被任何除1或它本身以外的数整除。
-
除了
print(numbers)看不出代码有什么问题...我认为 primeReplace 上的for应该从 0 开始,在 isPrime 中 if 应该是if (b % i == 0 && b !=0)@ 987654321@ -
@JorgeCampos - 两者都不是! en.wikipedia.org/wiki/Prime_number 和 primes.utm.edu/notes/faq/one.html。 Chloe13 的 isPrime 实现为
1返回 true。 -
@StephenC 是的,你是对的,那么它应该是
... && b>1谢谢你指出:)
标签: java arrays for-loop if-statement methods