Navigace: Hlavní stránka -> BASIC -> 04 Cykly -> 04.25 Největší společný dělitel II

MENU

04.25 Největší společný dělitel II

Zadání:
Sestavte program, který určí největšího společného dělitele dvou přirozených čísel.
Řešení:
Řešení je postaveno na principu odečtení menšího čísla od většího a nahrazení většího čísla tímto rozdílem. Tato akce
se opakuje do té doby, dokud se obě čísla nerovnají. Pokud se rovnají, jejich hodnaota je zároveň největším
společným dělitelem.

Příklad: a=42, b=70
1. b je vetší než a, hodnotu b nahradíme rozdílem b-a: a=42, b=28
2. a je větší než b, hodnotu a nahradíme rozdílem a-b: a=14, b=28
3. b je větší než a, hodnotu b nahradíme rozdílem b-a: a=14, b=14
obě čísla se rovnají, největší společný dělitel je 14
Module Module1

    Sub Main()

        Dim a, b As Integer

        Console.Write("Zadejte prvni cislo: ")
        a = Console.ReadLine
        Console.Write("Zadejte druhe cislo: ")
        b = Console.ReadLine

        If a <= 0 Or b <= 0 Then
            Console.WriteLine("Nelze vypocitat.")
        Else
            Do While a <> b
                If a > b Then
                    a = a - b
                Else
                    b = b - a
                End If
            Loop
            Console.WriteLine("Nejvetsi spolecny delitel: {0}", a)
        End If

        Console.ReadLine()

    End Sub

End Module
program ke stažení

Pro studenty:
Na rozdíl od použití příkazu DO ... LOOP UNTIL v programu 04.24 použití příkazu DO WHILE ... LOOP řeší
problém s nekonečnou smyčkou při zadání dvou shodných hodnot.