Navigace: Hlavní stránka -> Jazyk C -> 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).
#include "stdafx.h"
#include "math.h"
#include 

using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
	int c,i;
    bool prvocislo;

    printf("Zadejte cislo: ");
    scanf_s("%d",&c,1);

    prvocislo=true;

    for (i=2;i<=c-1;i++)
       if (c%i==0) prvocislo=false;

    if (prvocislo) printf("Prvocislo\n");
    else printf("Neni prvocislo\n");

    system("pause");
	return 0;
}
program ke stažení
Pro učitele:
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.