fork(2) download
  1. #include<stdio.h>
  2.  
  3. #define s_size 10000000
  4. int lpfact[10000001]={0};
  5.  
  6. void
  7. seive(){
  8. long long i, j;
  9. for(i=2; i<=s_size; i+=2)
  10. lpfact[i]=2;
  11. for(i=3; i<s_size; i+=2){
  12. if(!lpfact[i]){
  13. lpfact[i]=i;
  14. for(j=i; (j*i)<s_size; j+=2){
  15. if(!lpfact[j*i])
  16. lpfact[j*i]=i;
  17. }
  18. }
  19. }
  20. }
  21.  
  22. void
  23. factorize(int n){
  24. int i, factor, power;
  25. if(lpfact[n]==n || n==1){
  26. printf("%d^1\n",n);
  27. return;
  28. }
  29. while(n>1){
  30. i=n; power=0;
  31. factor=lpfact[i];
  32. while(n%lpfact[i]==0){
  33. power++;
  34. n/=lpfact[i];
  35. }
  36. printf("%d^%d ",factor,power);
  37. }
  38. printf("\n");
  39. }
  40.  
  41. int main(){
  42. int i;
  43. seive();
  44. for(i=1; i<=50; i++)
  45. factorize(i);
  46. factorize(10000000);
  47. return 0;
  48. }
Success #stdin #stdout 0.24s 41176KB
stdin
Standard input is empty
stdout
1^1
2^1
3^1
2^2 
5^1
2^1 3^1 
7^1
2^3 
3^2 
2^1 5^1 
11^1
2^2 3^1 
13^1
2^1 7^1 
3^1 5^1 
2^4 
17^1
2^1 3^2 
19^1
2^2 5^1 
3^1 7^1 
2^1 11^1 
23^1
2^3 3^1 
5^2 
2^1 13^1 
3^3 
2^2 7^1 
29^1
2^1 3^1 5^1 
31^1
2^5 
3^1 11^1 
2^1 17^1 
5^1 7^1 
2^2 3^2 
37^1
2^1 19^1 
3^1 13^1 
2^3 5^1 
41^1
2^1 3^1 7^1 
43^1
2^2 11^1 
3^2 5^1 
2^1 23^1 
47^1
2^4 3^1 
7^2 
2^1 5^2 
2^7 5^7