使用数组查找前100个素数(JAVA)
我尝试在java中使用数组显示前100个素数,它工作正常,但输出在每个数字之前显示为零: -我想要的是: 2 3 5 11 13 17.... -我得到的输出: 2 03 05 011 013 017.... 有人知道如何从输出中的数字中删除零位吗? 多谢各位使用数组查找前100个素数(JAVA),java,arrays,Java,Arrays,我尝试在java中使用数组显示前100个素数,它工作正常,但输出在每个数字之前显示为零: -我想要的是: 2 3 5 11 13 17.... -我得到的输出: 2 03 05 011 013 017.... 有人知道如何从输出中的数字中删除零位吗? 多谢各位 import java.util.Scanner; class ttar { public static void main(String args[]) {
import java.util.Scanner;
class ttar
{
public static void main(String args[])
{
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];
}
}
System.out.println("These are the first 100 prime numbers");
System.out.println(r);
}
}
0来自此行:
r+= array[m];
从不为数组指定任何值,因此所有元素都为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++;
}
}}
如果你已经知道如何使用+=运算符,为什么不在这里使用r=r+m+;谢谢你的回复,事实上,我是java数组新手,我想用它来获得前100个素数。是的,但你不用它。删除对数组的所有引用,您的程序将执行您想要的操作,但仍有改进的余地