import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import static java.
util.
Arrays.
stream;
import java.util.logging.Level;
import java.util.logging.Logger;
public class Main {
public static void main
(String[] args
) {
System.
out.
println("Maximum Sum : " + findSum
("file.txt"));
}
public static int findSum
(String filename
) {
// Get triangle array from file
int[][] numbers = null;
try {
numbers
= Files.
lines(Paths.
get(filename
)).
map(s
-> stream
(s.
trim().
split("\\s+")).
mapToInt(Integer::parseInt
).
toArray()).
toArray(int[][]::new);
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
}
// Write triangle array
for (int i = 0; i < numbers.length; i++) {
for (int j = 0; j < numbers[i].length; j++) {
System.
out.
printf(numbers
[i
][j
] + " ");
}
}
// Get maximum sum with controls
int sum = 0;
for (int rowIndex = numbers.length - 1; rowIndex > 0; rowIndex--) {
for (int columnIndex = 0; columnIndex < numbers[rowIndex].length - 1; columnIndex++) {
if (!isPrime(numbers[rowIndex - 1][columnIndex]) || (rowIndex == 1)) {
if (rowIndex == numbers.length - 1) {
int max
= Math.
max(isPrime
(numbers
[rowIndex
][columnIndex
]) ? 0 : numbers
[rowIndex
][columnIndex
],
isPrime(numbers[rowIndex][columnIndex + 1]) ? 0 : numbers[rowIndex][columnIndex + 1]);
numbers[rowIndex - 1][columnIndex] += max;
} else {
int max
= Math.
max(numbers
[rowIndex
][columnIndex
], numbers
[rowIndex
][columnIndex
+ 1]);
numbers[rowIndex - 1][columnIndex] += max;
}
sum = numbers[rowIndex - 1][columnIndex];
} else { // If it is prime number
numbers[rowIndex - 1][columnIndex] = 0;
sum = numbers[rowIndex - 1][columnIndex];
}
}
}
return sum;
}
// A function which we can get 'true' if given number is prime
public static boolean isPrime(int number) {
if (number <= 1) {
return false;
}
for (int i
= 2; i
<= Math.
sqrt(number
); i
++) {
if (number % i == 0) {
return false;
}
}
return true;
}
}
{"html5":"htmlmixed","css":"css","javascript":"javascript","php":"php","python":"python","ruby":"ruby","lua":"text\/x-lua","bash":"text\/x-sh","go":"go","c":"text\/x-csrc","cpp":"text\/x-c++src","diff":"diff","latex":"stex","sql":"sql","xml":"xml","apl":"apl","asterisk":"asterisk","c_loadrunner":"text\/x-csrc","c_mac":"text\/x-csrc","coffeescript":"text\/x-coffeescript","csharp":"text\/x-csharp","d":"d","ecmascript":"javascript","erlang":"erlang","groovy":"text\/x-groovy","haskell":"text\/x-haskell","haxe":"text\/x-haxe","html4strict":"htmlmixed","java":"text\/x-java","java5":"text\/x-java","jquery":"javascript","mirc":"mirc","mysql":"sql","ocaml":"text\/x-ocaml","pascal":"text\/x-pascal","perl":"perl","perl6":"perl","plsql":"sql","properties":"text\/x-properties","q":"text\/x-q","scala":"scala","scheme":"text\/x-scheme","tcl":"text\/x-tcl","vb":"text\/x-vb","verilog":"text\/x-verilog","yaml":"text\/x-yaml","z80":"text\/x-z80"}