fork download
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <math.h>
  4. #include <time.h>
  5.  
  6. void Factorization(long long num, _Bool SieveArray[])
  7. {
  8. long long div = 2, to_facotrize = num;
  9.  
  10. printf("Prime factorization of %lli:\n", num);
  11. while (div < to_facotrize)
  12. {
  13. if (SieveArray[div] == 1)
  14. {
  15. if (to_facotrize % div == 0)
  16. {
  17.  
  18. printf("%lli x ", div);
  19. to_facotrize /= div;
  20. }
  21.  
  22. else {
  23. if ( div == 2 ) div = 3;
  24. else div += 2;
  25. }
  26. } else {
  27. div += 2;
  28. }
  29. }
  30. printf("%lli\n", div);
  31. }
  32.  
  33. int main(int argc, char const *argv[])
  34. {
  35. clock_t start, end;
  36. start = clock();
  37. void Factorization(long long num, _Bool SieveArray[]);
  38.  
  39. // Sieve of Eratosthenes
  40. long long n = 1000001, i, j;
  41. long long sqrt_n = sqrt(n);
  42.  
  43. _Bool SieveArray[n];
  44. SieveArray[0] = 0, SieveArray[1] = 0;
  45.  
  46. for (i = 2; i < n; i++)
  47. SieveArray[i] = 1;
  48.  
  49. for (i = 2; i < sqrt_n; i++)
  50. if (SieveArray[i])
  51. for (j = i*i; j < n; j+=i)
  52. SieveArray[j] = 0;
  53.  
  54.  
  55. long long num;
  56. while( 1 )
  57. {
  58. if (scanf("%lld", &num) != 1) {
  59. fprintf(stderr, "Error: Undefined stdin!\n");
  60. return 100;
  61. } else {
  62. if ( num == 1 ) {
  63. printf("Prime factorization of 1:\n1\n");
  64. } else if ( num < 0 ) {
  65. fprintf(stderr, "Error: Undefined stdin!\n");
  66. return 100;
  67. } else if ( num == 0 ) {
  68. break;
  69. } else if ( num < 1000001 ) {
  70. if (SieveArray[num] == 1) {
  71. printf("Prime factorization of %lli:\n%lli\n", num, num);
  72. } else {
  73. Factorization(num, SieveArray);
  74. }
  75. } else {
  76. Factorization(num, SieveArray);
  77. }
  78. }
  79. }
  80.  
  81. end = clock();
  82. double time_taken = ((double) (end - start)) / CLOCKS_PER_SEC;
  83. printf("It's took %f seconds to execute\n", time_taken);
  84.  
  85. return 0;
  86. }
  87.  
Runtime error #stdin #stdout #stderr 0s 3016KB
stdin
Standard input is empty
stdout
Standard output is empty
stderr
Error: Undefined stdin!