Advertisement
Guest User

Untitled

a guest
May 28th, 2015
222
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.25 KB | None | 0 0
  1. int main(void)
  2. {
  3. long long int number;
  4. printf("Enter your number:\n");
  5. scanf("%lld", &number);
  6. long long int limit = squareroot(number);
  7.  
  8. long long int i, j;
  9. long long int *prime;
  10. prime = malloc(limit * sizeof(long long int));
  11.  
  12. if(!prime) {
  13. printf("not enough memory\n");
  14. return 1;
  15. }
  16.  
  17. long long int p = 0, q = 0;
  18.  
  19. for(i = 2; i < limit; i++) // initializes the prime number array
  20. {
  21. prime[i] = i;
  22. }
  23.  
  24. for(i = 2; i < limit; i++) // Implementation of the Sieve
  25. {
  26. if(prime[i] != 0)
  27. {
  28. for(j = 2; j < limit; j++)
  29. {
  30. {
  31. prime[j * prime[i]] = 0;
  32. if(prime[i] * j > limit)
  33. break;
  34. }
  35. }
  36. }
  37. }
  38.  
  39. for(i = 0; i < limit; i++) // Prints the prime numbers
  40. if(prime[i] != 0 && number % prime[i] == 0)
  41. {
  42. p = prime[i];
  43. break;
  44. }
  45. if(p != 0) {
  46. q = number / p;
  47.  
  48. if(q > limit) {
  49. printf("There's no prime factorization!\n");
  50. free(prime);
  51. return 1;
  52. }
  53.  
  54. for(i = 2; i < limit; i++)
  55. if(q == prime[i]) {
  56. if (p != q) {
  57. printf("p = %lld, q = %lld\n", p, q);
  58. }
  59. else
  60. {
  61. printf("p = q\n");
  62. }
  63. free(prime);
  64. return 0;
  65. }
  66.  
  67. printf("There's no prime factorization!\n");
  68. free(prime);
  69. return 1;
  70. }
  71. else {
  72. printf("There's no prime factorization!\n");
  73. free(prime);
  74. return 1;
  75. }
  76.  
  77. return 0;
  78. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement