计算出 3 至 1000 范围内最大的十个素数,放入数组中,并计算出其累加和。

看到这个题.首先得想什么是素数.

素数:是一个除了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 }

 

posted @ 2017-11-04 21:16  WETYUIOASHZXCVBNM  阅读(2562)  评论(0编辑  收藏  举报