[英]I can;t get all my prime numbers listed out. What's wrong? :S
我想做什么: 編寫一個接受一些整數作為命令行參數的 Java 程序; - 顯示傳遞的整數數 - 顯示最小和最大數 - 顯示列表中的所有質數 *
import java.util.*;
class commandLine
{
public static void main(String [] args)
{
int a[] = new int[args.length];
int count = 0;
for (int i = 0; i<a.length;i++)
{
a[i] = Integer.parseInt(args[i]);
count++;
}
System.out.println("Number of digits: " +count );
int large = a[0];
int small = a[0];
int num = 0;
for (int j = 0; j<a.length; j++)
{
num = a[j] ;
if(num>large)
{
large=num;
}
if(num<small)
{
small=num;
}
}
System.out.println("the largest is:" + large);
System.out.println("Smallest no is : " + small);
boolean isPrime = true;
for (int i = 2; i<a.length;i++){
for (int j=2; j<i; j++)
{
if((i % j)== 0)
{
isPrime=false;
break;
}
}
if(isPrime)
{
System.out.println(i + " is Prime");
}
isPrime = true;
}
}
}
您的質數檢查檢查從 2 到 a.length 的數字,而它應該檢查數組 a 的元素。
boolean isPrime;
for (int i : a) {
isPrime = true;
for (int j=2; j<i; j++) {
if ((i % j)== 0) {
isPrime=false;
break;
}
}
if(isPrime) {
System.out.println(Integer.toString(i) + " is Prime");
}
}
這應該會有所幫助 - 免責聲明:我沒有運行此代碼。
在素性檢查中使用[i]
而不是i
。 容易犯錯。
for (int i =0; i<a.length;i++){
int tempInt = a[i];
for (int j=2; j<tempInt; j++)
{
if((tempInt % j)== 0)
{
isPrime=false;
break;
}
}
if(isPrime == true) System.out.println("Prime Number : " + tempInt);
else isPrime = true;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.