看到这个题.首先得想什么是素数.
素数:是一个除了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 }