#include #include #include #include #include #include #include long Prime[1000]; void makePrime(){ Prime[0]=2; Prime[1]=3; for(int i=2;i<1000;i++){ for(long j=Prime[i-1]+1;;j++){ int flag=0; for(int s=0;sn) break; } for(int j=i-1;j>=0;j--){ if(n%Prime[j]==0) return j; } return 1; } long grim(long n){ long h=Prime[position(n)]; if(n==1) return 1; else return 1+h*(grim(n/h)); } long int longestSequence(int a_size, long int* a) { long sum=0; for(int i=0;i