我想打印前 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);
}
}
但是它没有给出任何输出,只是一个空白。我找不到我的错误在哪里。 提前致谢。
最佳答案
你永远不会真正检查一个数字是否是质数(result
没有被设置在任何有用的地方)
关于java - 计算质数没有输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9335224/