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