// // main.cpp // Breaking sticks // // Created by Abhishek Kumar Shakya on 15/12/17. // Copyright © 2017 Abhishek Kumar Shakya. All rights reserved. // #include #include #include #include using namespace std; # include vector primeFactors(long long n) { vector a; while (n%2 == 0) { a.push_back(2); n = n/2; } for (long long i = 3; i <= sqrt(n); i = i+2) { while (n%i == 0) { a.push_back(i); n = n/i; } } if (n > 2) a.push_back(n); return a; } int main(){ int n; cin>>n; long long arr[n]; for(int i=0;i>arr[i]; long long counter = 0; for(int i=0;iprime; prime = primeFactors(arr[i]); long long len = prime.size(); long long num = arr[i]; long long temp = 1; for(long long j = len-1;j>=0;j--){ if(j == len-1){ num = num / prime[j]; counter += temp; } else{ temp = temp * prime[j+1]; num = num / prime[j]; counter += temp; } } counter += arr[i]; } } cout<