某游戏公司设计了一个奖励活动,给N个用户(1<=N<=10^7)连续编号为1到N,依据用户的编号S发放奖励。
import java.util.ArrayList;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int N = scanner.nextInt();
int L = scanner.nextInt();
int x = scanner.nextInt();
int y = scanner.nextInt();
int z = scanner.nextInt();
int res = 0;
ArrayList<Integer> arr = new ArrayList<>();
for (int i = 1; i <= N - L + 1; i++) {
int currentRes = 0;
for(int k = i ; k <= L + i-1 ; k++) {
arr.add(k);
}
currentRes = getCards(arr, x, y, z);
res = Math.max(res, currentRes);
arr.clear();
}
System.out.println(res);
}
public static int getCards(ArrayList<Integer> arr, int x, int y, int z) {
int res = 0;
for (int i = 0; i < arr.size(); i++) {
res += getCard(arr.get(i), x, y, z);
}
return res;
}
public static int getCard(int n, int x, int y, int z) {
if (n % (x * y * z) == 0) {
return 5;
} else if (n % (x * y) == 0 || n % (y * z) == 0 || n % (x * z) == 0) {
return 3;
} else if (n % x == 0 || n % y == 0 || n % z == 0) {
return 1;
} else {
return 0;
}
}
}