import java.util.HashMap; import java.util.Scanner; import java.util.ArrayList; public class BreakingSticks { static HashMap d=new HashMap<>(); static long solve(long[] a){ long sum=0; for(int i=0;i<=a.length-1;++i) sum+=stickMove(a[i]); return sum; } private static long stickMove(long a) { if(a==1)return 1; if(d.get(a)==null){ long mxP=primeA(a).stream().max(Long::compareTo).get(); long r=a/mxP; long ans=stickMove(r)*mxP+1; d.put(a,ans); } return d.get(a); } public static ArrayList primeA(long n){ ArrayList A=new ArrayList<>(); long d=2; while(1