【发布时间】:2012-03-09 06:20:50
【问题描述】:
我想打印前 100 个素数。所以,我创建了一个 int 100 的数组。我添加了第一个素数 bag[0] = 2,然后对于以下数字,我尝试编写一个算法。它将从 3 开始,一直持续到数组已满。每个数字是否为素数,取决于它是否可以被数组中的前一个元素整除,如果它是素数,则将其添加到数组中。
这是我的代码:
public class Trial02
{
public static void main( String[] args)
{
int[] bag = new int[100];
bag[0] = 2; //first element of prime array
int valid = 1;
int i;
boolean result = true;
String str = "";
//starting from 3 it checks if a number is prime until array is full
for( i=3; valid<bag.length; i++)
{
//it checks if previous primes in array are divisible by current number until coming to current number
for(int k=0; k<valid; k++)
{
if( i % bag[k] == 0)
result = false;
}
if( result == true) //if it is prime it is added to array
{
bag[valid] = i;
valid ++;
}
}
//printing results
for(int m=0; m < bag.length; m++)
str = str + bag[m] + " ";
System.out.println("zaa xd");
System.out.println(str);
}
}
但它没有给出任何输出,只是一个空白。我找不到我的错误在哪里。 提前致谢。
【问题讨论】:
-
祝你作业好运!在你的未来,学习使用 StackOverflow 比计算前 100 个素数更重要。继续我的好人!
-
留意无限循环。 “不打印输出”太不具体,无法用于调试。