2019年全国高校程序设计挑战赛JAVA编程题4

2019-11-21-2019年全国高校程序设计挑战赛JAVA编程题4

2019年全国高校程序设计挑战赛JAVA编程题4

2019年全国高校程序设计挑战赛JAVA编程题4

编程描述

由N ( N< = 10000 )个数字组成的数组,其中连续K ( K<=200 )个元素构成一个区间,称为K区间。一个K区间中所有素数的和记为Sk ,请计算整个数组中,所有K区间中的最大Sk值,并输出。

输入格式

第一行是两个整数N和K ,第二行输入N个数,表示数组中的元素。

输出格式

最大Sk值。

输入样例

1
2
8 2 
12 23 27 34 19 17 45 8

输出样例

1
36

算法实现

Java(jdk1.7)

代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
import java.util.Scanner;
public class Main {
public static Scanner sc = new Scanner(System.in);
public static void main(String[] args) {
int N = sc.nextInt();
int K = sc.nextInt();
int[] num = new int[N];
int Sk = 0;
for (int i = 0; i < N; i++) {
num[i] = sc.nextInt();
}
sc.close();
for (int i = 0; i < N - K; i++) {
int sumPrimes = 0;
for (int j = 0; j < K; j++) {
if (isPrimes(num[i + j])) {
sumPrimes += num[i + j];
}
}
if (sumPrimes > Sk) {
Sk = sumPrimes;
}
}
System.out.println(Sk);
}
public static boolean isPrimes(int num) {
for (int i = 2; i < num; i++) {
if (num % i == 0) {
return false;
}
}
return true;
}
}
文章作者: HibisciDai
文章链接: http://hibiscidai.com/2019/11/21/2019-11-21-2019年全国高校程序设计挑战赛JAVA编程题4/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 HibisciDai