I inserted all numbers in a.
I had all primes uptil 10^6. First of all I removed all prime factors from all the number( in a ) and maintained their count in b array. Now a is the residual array .
Then factoring all numbers will cause TLE as a[i] can go upto 10^18. But I don’t need to do it.
I just to consider a factor individually only if it appears more than one time.
This can happen only in 2 cases ,
1)if any of two elements in the residual array have a gcd > 1, the gcd is another factor that I need to consider.
2)if any element in the residual array>1 and is a perfect square.
If still any element in the residual array is still greater than one, I just need to cube that and multiply in my answer( even if the number is not prime ).
My Code :- http://ideone.com/niPoP8
Can someone help me find whether the flaw is in the logic or the code?