language: Java (sun-jdk-1.6.0.31)
date: 110 days 4 hours ago
link:
visibility: public
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
//This is an example for problem id FCTRL2 in SPOJ..
import java.math.BigInteger;
import java.io.*;
import java.util.Arrays;
class FCTRL2
{
 
public static int multiplicity(int n, int p) {
    int q = n, m = 0;
    if (p > n) return 0;
    if (p > n/2) return 1;
    while (q >= p) {
        q /= p;
        m += q;
    }
    return m;
}
public static void main(String s[]) throws Exception
{
        int total_no_cases,num_data,prime_list[];
        boolean prime_num[]=new boolean[101];
        prime_list=new int[30];
        Arrays.fill(prime_num, Boolean.FALSE);
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        total_no_cases=Integer.parseInt(br.readLine());
        
        //Find all the prime number's b/w 1-100..
        int count=0;
        prime_num[0]=prime_num[1]=true;
        for(int i=2;i<=100;i++)
        {
                if(!prime_num[i])
                {
                        for(int j=i;j<=100;j=j+i)
                        {
                        if(!prime_num[j])
                        {
                                prime_num[j]=true;
                        }
                        }
                        
                        prime_list[count]=i;
                        ++count;
                }
                
        }
        prime_list[count]=-1;
        for (int i=0;i<total_no_cases;i++)
        {
                BigInteger res_print=BigInteger.ONE;
                num_data=Integer.parseInt(br.readLine());
                int incr=0;
                while(prime_list[incr]<=num_data||prime_list[incr]==-1)
                {
                        //FInd the exponent of the prime number..
                        
                        int exp=multiplicity(num_data,prime_list[incr]);
                        double p1=Double.parseDouble(String.valueOf(prime_list[incr]));
                        double p2=Double.parseDouble(String.valueOf(exp));
                        
                        long temp=(long)Math.pow(p1,p2);
                        res_print=res_print.multiply(BigInteger.valueOf(temp));
                        
                        incr++;
                }
                
                System.out.println(res_print);
        }
}
}