fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. long long n;
  4. unordered_map<long long,long long> preim;
  5. void aiko(long long n){
  6. preim[0]=preim[1]=1;
  7. for(long long i=2;i<=n;i++){
  8. if(preim[i]==0){
  9. for(long long j=i*i;j<=n;j*=2){
  10. preim[j]=1;
  11. }
  12. }
  13. }
  14. }
  15. int main(){
  16. ios::sync_with_stdio(false);
  17. cin.tie(0),cout.tie(0);
  18. cin>>n;
  19. aiko(n);
  20. for(long long i=2;i<=n;i++){
  21. if(preim[i]==0 && n%i==0){
  22. long long cnt=1;
  23. n/=i;
  24. cout<<i;
  25. if(n%i==0){
  26. cout<<"^";
  27. while(n%i==0){
  28. n/=i;
  29. cnt++;
  30. }
  31. cout<<cnt;
  32. }
  33. if(n!=1){
  34. cout<<" * ";
  35. }
  36. }
  37. }
  38. return 0;
  39. }
Success #stdin #stdout 0s 5320KB
stdin
23
stdout
23