• 輸入某數,印出小於該數之所有質數、質數個數、最大質數
import java.util.Scanner;public class P5418 {	public static void main(String[] args) {		Scanner scn = new Scanner(System.in);		System.out.println("請輸入一個正整數:");		int input = scn.nextInt();
		// count 被整除之次數		// sum 質數個數		// max 質數最大值		int count, sum, max;		count = sum = max = 0;
		// 判斷輸入數字是否為正整數		// 附條件無限迴圈,停止條件成立,終止迴圈		for (int i = 1; i > 0; i++) {			// 輸入0或負數,重新輸入			if (input < 1) {				System.out.println("請輸入大於0之正整數:");				input = scn.nextInt();			} else {				// 輸入正數,i值改為-1,停止迴圈				i = -1;				System.out.println("您輸入之數字為 " + input);				System.out.print("質數有:");				scn.close();			}		}
		// 判斷質數		// i迴圈為界定數字範圍,輸入100,即從1測試至100(小於100之數字)		for (int i = 1; i <= input; i++) {			// count值為共用,判斷前須先將count值歸0			count = 0;
			// j迴圈,判斷數字(i值)是否為質數			// 如i=5,由1測試至5(j=1,j<=i)			// 若能整除,count值加1,質數只能被1和質數本身整除			// 5若為質數,只能被1和5整除,count值必不大於3			for (int j = 1; j <= i; j++) {				if (i % j == 0) {					count++;				}			}
			// 印出count值小於3之i值(即質數)			// sum值加1,i值指定給max			if (count < 3) {				System.out.print(" " + i + " ");				sum++;				// i值由小至大,最後之i值必為最大之質數				max = i;			}		}		System.out.println();		System.out.println("小於 " + input + " 的質數共有 " + sum + " 個");		System.out.println("最大質數為 " + max);	}}
  • 輸出結果:
請輸入一個正整數:1000您輸入之數字為 1000質數有: 1  2  3  5  7  11  13  17  19  23  29  31  37  41  43  47  53  59  61  67  71  73  79  83  89  97  101  103  107  109  113  127  131  137  139  149  151  157  163  167  173  179  181  191  193  197  199  211  223  227  229  233  239  241  251  257  263  269  271  277  281  283  293  307  311  313  317  331  337  347  349  353  359  367  373  379  383  389  397  401  409  419  421  431  433  439  443  449  457  461  463  467  479  487  491  499  503  509  521  523  541  547  557  563  569  571  577  587  593  599  601  607  613  617  619  631  641  643  647  653  659  661  673  677  683  691  701  709  719  727  733  739  743  751  757  761  769  773  787  797  809  811  821  823  827  829  839  853  857  859  863  877  881  883  887  907  911  919  929  937  941  947  953  967  971  977  983  991  997 小於 1000 的質數共有 169 個
最大質數為 997
arrow
arrow

    ALVIN 發表在 痞客邦 留言(0) 人氣()