【发布时间】:2014-07-29 10:25:46
【问题描述】:
我是新手,请原谅我缺乏组织。 好的,所以我做了一个数组,其中包含 8 到 100 之间的所有素数。我现在要做的是创建另一个数组,它可以找到 101-200 之间的所有素数。所以请允许我解释一下我是如何完成第一部分的:
//Prime1是一个动态整数数组,存储了8到100之间的所有素数
int arrayCounter = 0;
for(int primeTest = 8; primeTest<=100; primeTest++)
{
if(primeTest%2!=0 && primeTest%3!=0 && primeTest%5!=0 && primeTest%7!=0)
{
Prime1.add(primeTest); //adds the prime numbers to array
arrayCounter = arrayCounter +1;
}
else
{
arrayCounter = arrayCounter + 1;
}
}
现在回到主要问题,而不是写“if(primeTest % "prime#" !=0)" 我希望能够在整个 Prime1 数组中使用模数并查看所有值是否不相等零...让我详细说明。
for(int primeTest2 = 101; primeTest2 <= 200; primeTest2++)
{
for(int arrayCounter2 = 0; arrayCounter2 < Prime1.size(); arrayCounter2++)
{
if(primeTest2 % Prime1.get(arrayCounter2) != 0 )
{
Prime2.add(primeTest2);
}
}
}
//请原谅缺少的大括号
^^所以这里发生的是我从 101 开始取一个值,并将它与 Prime1 数组的第一个值取模。如您所知,这可能会给我一个误报,因为即使数字不是素数,11(数组中的第一个素数)仍可能显示为真。这就是为什么我需要能够用数组中的所有值来测试一个数字,以确保它不能被任何其他素数除(意味着它是素数)。
【问题讨论】:
-
新手不是缺乏组织的借口。
-
你为什么要重新发明轮子?看看怎么primes should be checked
-
@fed.pavlo:实践、乐趣和利润是重新发明轮子的正当理由。在这种情况下,它可能只是练习......
标签: java arrays arraylist array-algorithms