码迷,mamicode.com
首页 > 其他好文 > 详细

水题记录

时间:2016-03-23 17:12:57      阅读:140      评论:0      收藏:0      [点我收藏+]

标签:

素数求和问题

时间限制:3000 ms  |  内存限制:65535 KB
难度:2
 
描述
现在给你N个数(0<N<1000),现在要求你写出一个程序,找出这N个数中的所有素数,并求和。
 
输入
第一行给出整数M(0<M<10)代表多少组测试数据
每组测试数据第一行给你N,代表该组测试数据的数量。
接下来的N个数为要测试的数据,每个数小于1000
输出
每组测试数据结果占一行,输出给出的测试数据的所有素数和
样例输入
3
5
1 2 3 4 5
8
11 12 13 14 15 16 17 18
10
21 22 23 24 25 26 27 28 29 30
样例输出
10
41
52

package Main;


import java.util.Scanner;

public class Main2 {

    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        int num = input.nextInt();
        for (int i = 0;i<num;i++) {
            int n = input.nextInt();
            int [] array = new int[n];
            for (int j = 0;j<n;j++) {
                array[j] = input.nextInt();
            }
           
           int result =cal(array);
            System.out.println(result);
        }
        
    }

    private static int cal(int[] list) {
        int sum = 0;
        for (int i = 0;i<list.length;i++) {
            if (isPrime(list[i])) {
                
                sum += list[i];
            }
            
        }
        return sum;
    }

     public static boolean isPrime(int a) {  
          
            boolean flag = true;  
      
            if (a < 2) {// 素数不小于2  
                return false;  
            } else {  
      
                for (int i = 2; i <= Math.sqrt(a); i++) {  
      
                    if (a % i == 0) {// 若能被整除,则说明不是素数,返回false  
      
                        flag = false;  
                        break;// 跳出循环  
                    }  
                }  
            }  
            return flag;  
        }  
    
    
}

 

水题记录

标签:

原文地址:http://www.cnblogs.com/airycode/p/5311739.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!