Navigace: Hlavní stránka -> BASIC -> 04 Cykly -> 04.21 Test čísla na prvočíslo

MENU

04.21 Test čísla na prvočíslo

Zadání:
Sestavte program, který určí, zda je zadané přirozené číslo prvočíslem.
Řešení:
Zadání vyřešíme použitím cyklu FOR. Zadané číslo postupně vydělíme všemi hodnotami od 2 do číslo-1. Pokud alespoň
při jednom dělení nastane nulový zbytek, nejedná se o prvočíslo a proto si vložíme do pomocné proměnné prvocislo
hodnotu false, která přepíše původní hodnotu true, kterou inicializujeme proměnnou prvocislo na začátku programu.
Po všech děleních otestujeme, zda v proměnné prvocislo zůstala hodnota true (zadané číslo je prvočíslem), nebo
byla přepsána hodnotou false (zadané číslo není prvočíslem).
Module Module1

    Sub Main()

        Dim c, i As Integer
        Dim prvocislo As Boolean

        Console.Write("Zadejte cislo: ")
        c = Console.ReadLine

        prvocislo = True

        For i = 2 To c - 1
            If c Mod i = 0 Then prvocislo = False
        Next
        If prvocislo Then
            Console.WriteLine("Prvocislo")
        Else
            Console.WriteLine("Neni prvocislo")
        End If

        Console.ReadLine()

    End Sub

End Module
program ke stažení
Pro učitele:
Příkaz For i = 2 to c - 1 lze pozměnit na For i = 2 to Math.Round(Math.Sqrt(c)), algoritmus proběhne výrazně rychleji. Zadané číslo nemusíme testovat všemi čísly z intervali 2..číslo-1, lze nahradit horní mez odmocninou ze zadaného čísla. Jelikož jsou v cyklu FOR požadovány ordinální hodnoty, musíme ještě odmocninu ze zadaného čísla zaokrouhlit na celé číslo.