import java.io.*; import java.util.*; import java.text.*; import java.math.*; import java.util.regex.*; public class Solution { static boolean prime[] = new boolean[100000001]; static long getMaxMoves(long n,int id){ if(n==1) return 1; long i=largestPrimeFactor(n); return 1+i*getMaxMoves(n/i,0); } static boolean isPrime(long number){ int sqrt = (int) Math.sqrt(number) + 1; for (int i = 2; i < sqrt; i++) { if (number % i == 0) { return false; } } return true; } static long largestPrimeFactor(long no) { long i=no; if(!isPrime(no)) for (i = 2; i <= no; i++) { if (no % i == 0) { no /= i; i--; } } //System.out.println(i); return i; } static long leastDivisor(long n){ for(long i=3;i0){ long n=in.nextLong(); if(n<=1000000) sum+= getMaxMoves(n,0); else sum+=getMaxMoves(n); } System.out.println(sum); } }