[英]Finding the first 100 prime numbers using array (JAVA)
我正在嘗試使用java中的數組顯示前100個素數,它沒有問題,但是輸出在每個數字之前顯示零:-我想要的是:2 3 5 11 13 17 ....-輸出i正在:2 03 05 011 013 017 ....有人知道如何從輸出中的數字中刪除零數字嗎? 謝謝
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++;
}
}}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.