Advertisement
Guest User

primzahlen cijeli kod

a guest
Apr 26th, 2018
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.52 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. long readNumber();
  5. long isPrime(long num);
  6. void primeFactors(long zahl);
  7. long perfekt(long x);
  8.  
  9. int main()
  10. {
  11. long x;
  12. char yn;
  13.  
  14. isPrime(1);
  15.  
  16. do{
  17. x = readNumber();
  18. printf("\nZahl %ld prime test: %ld", x, isPrime(x));
  19.  
  20. primeFactors(x);
  21.  
  22.  
  23. if(perfekt(x) == x)
  24. {
  25. printf("\n\nDiese Zahl ist Perfektzahl.");
  26. }
  27. else
  28. {
  29. printf("\n\nDiese Zahl ist nicht Perfekt Zahl.");
  30. }
  31.  
  32. printf("\n\nNocmals(y/n): ");
  33. scanf(" %c", &yn);
  34. }while(yn == 'y');
  35.  
  36. return 0;
  37. }
  38.  
  39. long readNumber()
  40. {
  41. long i;
  42. printf("\nGeben Sie eine ganze Zahl ein: ");
  43. scanf("%ld", &i);
  44. return i;
  45. }
  46.  
  47. long isPrime(long num)
  48. {
  49. long i, t;
  50. static long feld [101];
  51.  
  52. if(feld[1] == 0)
  53. {
  54. feld[0] = 0;
  55. feld[1] = 1;
  56. feld[2] = 1;
  57. feld[3] = 1;
  58.  
  59. for(t=4; t<=100; t++)
  60. {
  61. feld[t] = 2;
  62.  
  63. for(i=2; i*i<=t; i++)
  64. {
  65. if(!(t%i))
  66. {
  67. feld[t] = 0;
  68. }
  69. }
  70. if (feld[t] == 2)
  71. {
  72. feld[t] = 1;
  73. }
  74. }
  75. return 0;
  76. }else if(num>100)
  77. {
  78. for(i=2; i*i<=num;i++)
  79. {
  80. if(!(num%i))
  81. {
  82. return 0;
  83. }
  84. }
  85. return 1;
  86.  
  87. }
  88. else if(num<0)
  89. {
  90. return -1;
  91. }
  92. else
  93. {
  94. return feld[num];
  95. }
  96.  
  97.  
  98. /*y = num/2;
  99.  
  100. if(num<0)
  101. {
  102. //printf("\nKein Primzahl!");
  103. return -1;
  104. }
  105.  
  106. for(i=2; i<=y; i++)
  107. {
  108. if(num%i == 0)
  109. {
  110. //printf("\nKein Primzahl!");
  111. return 0;
  112. }
  113. }
  114. //printf("\nEs ist Primzahl");
  115. return 1;*/
  116. }
  117.  
  118. void primeFactors(long zahl)
  119. {
  120. long i;
  121.  
  122. printf("\n\n**Primefaktorenzerlegung**\n\n");
  123.  
  124. if((isPrime(zahl)) == 1)
  125. {
  126. printf("\n%ld ist eine Primzahl!\n", zahl);
  127. }
  128. else
  129. {
  130. printf("\n%ld = ", zahl);
  131.  
  132. for(i=2; i*i<=zahl; i++)
  133. {
  134. if(!(zahl%i))
  135. {
  136. zahl = zahl/i;
  137. printf("%ld*", i--);
  138. }
  139. }
  140. printf("%ld", zahl);
  141. }
  142. }
  143.  
  144. long perfekt(long x)
  145. {
  146. long i;
  147. long p=0;
  148.  
  149. printf("\n\n*Perfektzahlen*\n\n");
  150.  
  151. for(i=1; i<x; i++)
  152. {
  153. if((x%i) == 0)
  154. {
  155. p = p + i;
  156. }
  157. }
  158. return p;
  159. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement