Advertisement
Guest User

Untitled

a guest
Nov 18th, 2019
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.39 KB | None | 0 0
  1. //lab 4
  2. using System;
  3. using System.Diagnostics;
  4. using System.Collections.Generic;
  5.  
  6. class MainClass
  7. {
  8. //z1
  9. static Int32[] NWD_odejmowanie(int a, int b)
  10. {
  11. int counter = 0;
  12. while (a != b)
  13. {
  14. if (a > b)
  15. a -= b;
  16.  
  17. else
  18. b -= a;
  19.  
  20. counter++;
  21. }
  22. return new Int32[2] { a, counter };
  23. }
  24. //z1
  25. static Int32 NWD_modulo(int a, int b)
  26. {
  27. int counter = 0;
  28. while (b != 0)
  29. {
  30. int r = a % b;
  31. a = b;
  32. b = r;
  33. counter++;
  34. }
  35. return a;
  36. }
  37. //NWD przez modulo jest o wiele szybsze
  38. //z5
  39. /// <summary>
  40. /// Wyznacza n-ty element ciągu Fibonacciego
  41. /// </summary>
  42. /// <param name="n">nty element</param>
  43. /// <returns>zwraca wartosc n-tego elementu</returns>
  44. static int Fib(int n)
  45. {
  46. if (n == 0)
  47. {
  48. return 0;
  49. }
  50. else if (n == 1)
  51. {
  52. return 1;
  53. }
  54. else
  55. {
  56. int fa = 0;
  57. int fb = 1;
  58. int fi = 0;
  59. for (int i = 2; i <= n; i++)
  60. {
  61. fi = fa + fb;
  62. fa = fb;
  63. fb = fi;
  64. }
  65. return fi;
  66. }
  67. }
  68. //z6
  69. /// <summary>
  70. /// zwraca zbior liczb Fib do pewnej liczby
  71. /// </summary>
  72. /// <param name="n">koncowy przedzial</param>
  73. /// <returns>tablica z liczbami Fib</returns>
  74. static int [] zbiorFib(int n)
  75. {
  76. int[] fib = new int[n + 1];
  77. int sum = 0;
  78. for (int i = 0; i < n + 1; i++)
  79. {
  80. fib[i] = Fib(i);
  81. }
  82. return fib;
  83. }
  84.  
  85. static int sumFib(int n)
  86. {
  87. int[] fib = new int[n + 1];
  88. int sum = 0;
  89. for (int i = 0; i < n + 1; i++)
  90. {
  91. fib[i] = Fib(i);
  92. sum += fib[i];
  93. Console.WriteLine(i + " " + sum);
  94. }
  95. return sum;
  96. }
  97. //z7
  98. /// <summary>
  99. /// Metoda liczaca czy liczba jest pierwsza
  100. /// </summary>
  101. /// <param name="n"> jaka liczba ma byc sprawdzona</param>
  102. /// <returns>jesli jest pierwsza zwaca true inaczej false</returns>
  103. static bool czyPierwsza(int n)
  104. {
  105. if (n <= 1)
  106. return false;
  107. for(int i=2;i<n;i++)
  108. {
  109. if (n % i == 0)
  110. return false;
  111. }
  112. return true;
  113. }
  114. //z8
  115. /// <summary>
  116. /// zwraca liczby pierwsze w przedziale
  117. /// </summary>
  118. /// <param name="z">od</param>
  119. /// <param name="x">do</param>
  120. /// <returns> lista liczb pierwszych</returns>
  121. static List<int> przedzialPierwszych(int z,int x)
  122. {
  123. List<int> przedzial = new List<int>();
  124. while (z < x)
  125. {
  126. if (czyPierwsza(z) == true)
  127. przedzial.Add(z);
  128.  
  129. z++;
  130. }
  131. return przedzial;
  132. }
  133. static List<int> przedzialPierwszych8(int a,int b)
  134. {
  135. if (b == 1)
  136. {
  137. return przedzialPierwszych(1, a);
  138. }
  139. else
  140. {
  141. return przedzialPierwszych(a, b);
  142. }
  143. }
  144. //z10
  145. static bool wpadkaPierwsza(int n) {
  146. bool result = false;
  147. for (int i = 2; i < n; i++) {
  148. if (n % i != 0) {
  149. result = true;
  150. break;
  151. }
  152. continue;
  153. }
  154. return result;
  155. }
  156. /// <summary>
  157. /// nwm czy dziala tak jak ma to dzialac.
  158. /// </summary>
  159. /// <param name="a">od</param>
  160. /// <param name="b">do </param>
  161. /// <returns>liczby pierwsze z przedzialu</returns>
  162. static List<int> przedzialPierwszychWpadka(int a, int b)
  163. {
  164. List<int> przedzial = new List<int>();
  165. for (int i = 2; i < b; i++) {
  166. if (wpadkaPierwsza(i) == true) {
  167. przedzial.Add(i);
  168. }
  169. }
  170. return przedzial;
  171. }
  172. static List<int> pierwiastekPierwszej(int a, int b) {
  173. List<int> wynik = new List<int>();
  174. while (a < b) {
  175. if (SqrtN(a) == true) {
  176. wynik.Add(a);
  177. }
  178. a++;
  179. }
  180. return wynik;
  181. }
  182. /// <summary>
  183. /// piewiastek pierwszej
  184. /// </summary>
  185. /// <param name="x"></param>
  186. /// <returns></returns>
  187. public static bool SqrtN(int x)
  188. {
  189. double d = Math.Ceiling(Math.Sqrt(x));
  190. for (int i = 2; i < d; i++)
  191. {
  192. if (x % i == 1)
  193. {
  194. return false;
  195. }
  196. }
  197. return true;
  198. }
  199. /// <summary>
  200. /// sito Eratostenesa
  201. /// </summary>
  202. /// <param name="a">od</param>
  203. /// <param name="b">do</param>
  204. /// <returns></returns>
  205. public static void Main(string[] args)
  206. {
  207. Stopwatch watch;
  208. watch = new Stopwatch();
  209. watch.Restart();
  210. Console.WriteLine("NWD odejmowanie: " + NWD_odejmowanie(122, 41)[0]);
  211. watch.Stop();
  212. Console.WriteLine("Czas odejmowania {0}", watch.Elapsed);
  213. watch.Restart();
  214. Console.WriteLine("NWD modulo: " + NWD_modulo(122, 41));
  215. watch.Stop();
  216. Console.WriteLine("Czas modulo: " + watch.Elapsed);
  217. Console.WriteLine("Fibonaci 4 liczba:" + Fib(4));
  218. Console.WriteLine("suma 4 liczb fib:" + sumFib(4));
  219.  
  220. Console.WriteLine("czy pierwsza: "+ czyPierwsza(7));
  221. List<int> arr = przedzialPierwszych(1, 9);
  222. foreach(int a in arr)
  223. {
  224. Console.Write(a + ",");
  225. }
  226. Console.Write( "\n");
  227.  
  228. List<int> arr8 = przedzialPierwszych8(12, 1);
  229. foreach(int a8 in arr8)
  230. {
  231. Console.Write(a8 + ",");
  232. }
  233. Console.WriteLine("Liczba liczb pierwszych w przedziale:" + arr8.Count);
  234. Console.WriteLine(SqrtN(4));
  235. List<int> pierwszaWpadkaList = przedzialPierwszychWpadka(1,8);
  236.  
  237. Console.WriteLine("Pierwsza wpadka: \n");
  238. foreach (int item in pierwszaWpadkaList){
  239. Console.WriteLine(item);
  240. }
  241. /*
  242. List<int> pierwiastki = pierwiastekPierwszej(1, 89);
  243. foreach (int p in pierwiastki) {
  244. Console.Write(p + ",");
  245. }
  246. * */
  247. Console.ReadKey();
  248. }
  249. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement