素数求和问题

2014-11-24 11:01:08 · 作者: · 浏览: 0

素数求和问题
时间限制:3000 ms | 内存限制:65535 KB
难度:2
描述
现在给你N个数(0 输入
第一行给出整数M(0 每组测试数据第一行给你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
[java] package nyist.base;

import java.util.Scanner;

public class Main22 {
public static void main(String[] args) {
int [][] src = getInput();
for(int i = 0;i < src.length;i++){
int sum = 0;
for(int j = 0;j < src[i].length;j++){
if(isPrime(src[i][j])){
sum += src[i][j];
//System.out.print(src[i][j]+" ");
}
}
System.out.println(sum);
}
}
//把输入的数据看成一个二维数组
public static int[][] getInput(){
Scanner scanner = new Scanner(System.in);
int[][] input = new int[scanner.nextInt()][];
int [] single ;
for(int i = 0;i < input.length;i++){
single = new int[scanner.nextInt()];
for(int j =0;j single[j] = scanner.nextInt();
}
input[i] = single;
}
return input;
}

//判断一个数是否为素数
public static boolean isPrime(int n){
if(n <= 1) return false;
for(int i = 2;i <= Math.sqrt(n);i++){
if(n % i == 0){
return false;
}
}
return true;
}
}

package nyist.base;

import java.util.Scanner;

public class Main22 {
public static void main(String[] args) {
int [][] src = getInput();
for(int i = 0;i < src.length;i++){
int sum = 0;
for(int j = 0;j < src[i].length;j++){
if(isPrime(src[i][j])){
sum += src[i][j];
//System.out.print(src[i][j]+" ");
}
}
System.out.println(sum);
}
}
//把输入的数据看成一个二维数组
public static int[][] getInput(){
Scanner scanner = new Scanner(System.in);
int[][] input = new int[scanner.nextInt()][];
int [] single ;
for(int i = 0;i < input.length;i++){
single = new int[scanner.nextInt()];
for(int j =0;j single[j] = scanner.nextInt();
}
input[i] = single;
}
return input;
}

//判断一个数是否为素数
public static boolean isPrime(int n){
if(n <= 1) return false;
for(int i = 2;i <= Math.sqrt(n);i++){
if(n % i == 0){
return false;
}
}
return true;
}
}