看到這個題.首先得想什么是素數.
素數:是一個除了1和它本身之外再無任何因子的正整數.
結合題目,要求找出范圍內最大的10個素數,那么我們可以從1000開始找起,逐個遞減,並判斷是否是素數,如果是,就累加.找到第10個為止.
當然如果想要代碼以后重用的靈活性更大,也可以把符合要求的數放入一個數組,再依次相加即可.
下面通過代碼具體注釋.
1 public class Test1_8 { //創建一個測試類 2 public static void main(String[] args){ //包含一個主函數,必須是public static ,且參數是字符串 3 int n=0,s=0; 4 int []zArray=new int[10]; //新建一個數組.格式: 數組類型 []數組名=new 數組類型[數組個數];當然如果個數不確定,可以用動態數組.導入包java.util.ArrayList 5 for(int i=999;i>=3;i-=2){ //找到所有素數.從999開始倒着找 6 for(int j=2;j<i;j++){ 7 if(i%j==0) //從2開始依次試除 8 break; //首先i與j此時不可能相等,但若不相等還可以除盡則表示j是除1和它本身之外的因子,即是素數.跳出不再循環. 9 if(j==i-1) //j與i-1相等.因為判斷條件j<i.如果i是一個素數,那么j==i-1.如果不是則不等. 10 { 11 zArray[n]=i; //是素數,存入數組,並將數組個數相加 12 n++; 13 } 14 } 15 if(n==10) break; //已經有10個,跳出不再尋找 16 } 17 for(int i=0;i<10;i++){ 18 s+=zArray[i]; //將數組中的10個元素相加 19 System.out.println(zArray[i]); //依次輸出數組元素 20 } 21 System.out.println(s); //輸出和 22 } 23 }