Venciity

[ Telerik C#] LOOPS - EX 8

Feb 13th, 2014
254
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.69 KB | None | 0 0
  1. // 08. Write a program that calculates the greatest common divisor
  2. // (GCD) of given two numbers. Use the Euclidean algorithm (find it in Internet).
  3.  
  4. using System;
  5.  
  6. class GCD
  7. {
  8.     static void Main()
  9.     {
  10.         Console.Write("Enter number a: ");
  11.         double a = double.Parse(Console.ReadLine());
  12.         Console.Write("Enter number b: ");
  13.         double b = double.Parse(Console.ReadLine());
  14.  
  15.         // Exchange values if a < b
  16.         if (a < b)
  17.         {
  18.             double temp = a;
  19.             a = b;
  20.             b = temp;
  21.         }
  22.  
  23.         double result;
  24.         double resultRemainder;
  25.  
  26.         Console.WriteLine();
  27.         while (true)
  28.         {
  29.             result = a / b;
  30.             resultRemainder = a % b;
  31.             if (resultRemainder != 0)
  32.             {
  33.                 Console.WriteLine("{0} : {1} = {2} ; reminder = {3}", a, b, result, resultRemainder);
  34.                 a = b;
  35.                 b = resultRemainder;
  36.             }
  37.             else
  38.             {
  39.                 Console.WriteLine("The Greatest Common Divider is: {0}", b);
  40.                 break;
  41.             }
  42.         }
  43.     }
  44. }
  45.  
  46. // wikipedia: Най-голям общ делител
  47. // Много по-ефективен е Алгоритъмът на Евклид
  48. //1) За делимо се взима по-голямото число а за делител - по-малкото число.
  49. //2) Делителя от своя страна се дели на остатъка от частното
  50. //3) Това се повтаря дотогава, докато частното има остатък.
  51.  
  52. // НОД(18,84)
  53. // 84 : 18 = 4.12
  54. // 18 : 12 = 1.6
  55. // 12 : 6 = 2
  56. // НОД = 6
Advertisement
Add Comment
Please, Sign In to add comment