我试图在java中使用数组显示前100个素数,它没有问题,但输出在每个数字前显示为零: - 我想要的是: 2 3 5 11 13 17 .... - 我得到的输出: 2 03 05 011 013 017 .... 有谁知道如何从输出中的数字中删除零数字? 谢谢
setup.py
答案 0 :(得分:2)
0来自这一行:
r+= array[m];
您永远不会为数组指定任何值,因此所有元素都为0.
为什么你首先拥有阵列?
答案 1 :(得分:0)
为什么你在你的代码中做了r + = array [m]。如果你在@Henry中习惯了这一行会导致问题,如果你在代码中注释这一行就会得到你想要的结果。
int[] array = new int[542];
int m;
int primumnum;
String r = "";
for (m=0; m<=542; m++)
{
int counter = 0;
for(primumnum=m; primumnum>=1; primumnum--)
{
if(m % primumnum == 0)
{
counter = counter + 1;
}
}
if(counter == 2)
{
r = r + m + " ";
//r+= array[m];
}
}
或者要获得素数,您也可以按照以下方式进行,
class GeneratePrime{
public static boolean isPrime(int x)
{
for (int i = 2; i <= Math.sqrt(x); i++) {
if (x % i == 0) {
return false;
}
}
return true;
}
public static void main(String args[]){
int currentNumber = 2;
int primesFound = 0;
while (primesFound < 100) {
if (isPrime(currentNumber)) {
primesFound++;
System.out.print (currentNumber + " ");
if (primesFound % 10 == 0) {
System.out.println();
}
}
currentNumber++;
}
}}