我需要編寫一個代碼: 質數是一個大於1的正整數,它只能被自身和1整除。您將編寫一個程序,用戶輸入一個整數值,然後顯示小於或等於該數字的所有素數。Java程序不會輸出我需要的東西
功能要求
程序將提示用戶輸入一個正數,或-1的值,結束該程序。如果用戶輸入0或負數,程序將立即結束。輸入以外的整數程序的行爲不會被測試。
該程序將確定,從2到每個數字由用戶給出的數字,該數字是否是質數。在下面列出的柱狀格式中,程序將顯示關於素數和非素數的信息。
當表格完成時,程序將顯示給定範圍內的素數的數量以及該範圍內素數的比率。
樣品試驗
Welcome to the prime number program!
########################################################
Please enter a positive integer: 6
Number Is Prime Counterexample
2 Yes -
3 Yes -
4 No 4 % 2 = 0
5 Yes -
6 No 6 % 2 = 0
3 of the first 6 integers are prime; prime ratio = 0.5
到目前爲止,我的程序將只輸出:
Welcome to the prime number program!
########################################################
Please enter a positive integer: 2
我的代碼是:
import java.util.Scanner;
public class PrimeNumber
{
public static void main(String[] args)
{
Scanner sc =new Scanner(System.in);
System.out.println("Welcome to the prime number program!");
System.out.println("########################################################");
Integer input=getInput(sc);
if(input != null)
{
System.out.println("Number Is Prime Counterexample");
for(int l=2;l<l;l++)
{
int k=isPrime(l);
System.out.println(l+"\t"+(k==-1?"Yes\t\t"+"-":"No\t\t"+l+"%"+k+"=0"));
}
main(args);
return;
}
System.out.println("You Selected to exit ! Good Bye!");
}
public static int isPrime(int input)
{
for(int k=2;k<=input/2;k++)
{
if(input%k==0)
{
return k;
}
}
return -1;
}
public static Integer getInput(Scanner sc)
{
System.out.println("Please enter a positive integer: 2");
String input=sc.next();
Integer i;
try
{
i=new Integer(input);
}
catch(NumberFormatException e)
{
System.out.println("Invalid Input");
i=input.chars().iterator().next();getInput(sc);
}
return i;
}
{
} }
有人可以幫助我弄清楚我是什麼做錯了?
那麼,在你的for循環中你有'l
jrad
這是一個使用有意義的變量名稱的海報示例,並且絕不使用小寫的'L'作爲變量名稱(與'1'太相似)。 –