23. tétel: Legnagyobb közös osztó

Feladat: Kérjen be a billentyűzetről két egész számot és számolja ki tetszőleges módszerrel a legnagyobb közös osztójukat, majd írja is ki azt a képernyőre.
Az adatok valódiságát nem kell ellenőriznie. A működő programot és a kódot mutassa be tanárának!

Egy lehetséges megoldás Visual C# nyelven:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace 23tetel
{
    class Program
    {
        static int beker()
        {
            string s = Console.ReadLine();
            return (Convert.ToInt32(s));
        }

        static void Main(string[] args)
        {
            //23. tétel: Legnagyobb közös osztó – Euklídeszi algoritmus
            Console.WriteLine("Ez a program két pozitív egész szám legnagyobb közös osztóját számolja ki");
            Console.Write("Kérem az 1. számot: ");
            int szamx = beker();
            Console.Write("Kérem a 2. számot: ");
            int szamy = beker();
            Console.WriteLine("A beolvasott két szám: {0} és {1}", szamx, szamy);
            if (szamy>szamx)
            {
                int csere = szamx;
                szamx = szamy;
                szamy = csere;
            }
            //Console.WriteLine("A nagyobb szám: {0}; a kisebb szám: {1}.", szamx, szamy);
            bool megvan = false;    //Megvan-e a végeredmény?
            int hanyados;
            do
            {
                hanyados = szamx % szamy;
                if (szamy*hanyados == szamx)    //Ekkor pontosan osztható!
                {
                    megvan = true;
                }
                szamx = szamy;
                szamy = hanyados;
                //Console.WriteLine("x:{0}   y:{1}   hanyados: {2}", szamx, szamy, hanyados);
                if (hanyados == 0)
                {
                    megvan = true;
                }
            } while (megvan==false);
            Console.WriteLine("A két szám legnagyobb közös osztója: {0}", szamx);
            if (szamx == 1)
            {
                Console.WriteLine("Tehát a két szám relatív prím!");
            }

            Console.WriteLine("\n\nA program futása véget ért!");
        }
    }
}