fork download
  1. /* package whatever; // don't place package name! */
  2.  
  3. import java.util.*;
  4. import java.lang.*;
  5. import java.io.*;
  6.  
  7. /* Name of the class has to be "Main" only if the class is public. */
  8. class Ideone
  9. {
  10. static int max=1000000;
  11. static int spf[]=new int[max+1];
  12. static void createspf()
  13. {
  14. for(int i=2;i<=max;i++)
  15. spf[i]=i;
  16.  
  17. for(int i=2;i<=Math.sqrt(max);i++)
  18. {
  19. if(spf[i]==i)
  20. {
  21. for(int j=i*i;j<=max;j+=i)
  22. {
  23. if(spf[j]==j)
  24. spf[j]=i;
  25. }
  26. }
  27. }
  28.  
  29. }
  30.  
  31. static Map<Integer,Integer> primefactorization(int n)
  32. {
  33. Map<Integer, Integer> pf=new HashMap<>();
  34. while(n!=1)
  35. {
  36. int val=spf[n];
  37. pf.put(val,pf.getOrDefault(val,0)+1);
  38. n/=val;
  39. }
  40.  
  41. return pf;
  42. }
  43. public static void main (String[] args) throws java.lang.Exception
  44. {
  45. // your code goes here
  46. Scanner sc=new Scanner(System.in);
  47. createspf();
  48.  
  49. int n=sc.nextInt();
  50. int arr[]=new int[n+1];
  51. for(int i=1;i<=n;i++)
  52. arr[i]=sc.nextInt();
  53.  
  54. for(int i=1;i<=n;i++)
  55. {
  56. Map<Integer,Integer> primefact=primefactorization(arr[i]);
  57. System.out.println("the prime fact for "+arr[i]+" is :");
  58.  
  59. for(Map.Entry<Integer,Integer> entry:primefact.entrySet())
  60. System.out.println(entry.getKey()+" power "+entry.getValue());
  61.  
  62.  
  63. }
  64.  
  65.  
  66.  
  67. }
  68. }
Success #stdin #stdout 0.19s 61168KB
stdin
6
2 3 9 8 35 6
stdout
the prime fact for 2 is :
2 power 1
the prime fact for 3 is :
3 power 1
the prime fact for 9 is :
3 power 2
the prime fact for 8 is :
2 power 3
the prime fact for 35 is :
5 power 1
7 power 1
the prime fact for 6 is :
2 power 1
3 power 1