Zadání:
Sestavte program, který provede rozklad zadaného čísla na prvočinitele.
Řešení:
Na začátku programu si vložíne do dělitele hodnotu 2 a dělíme zadané číslo tímto dělitelem do té doby, dokud
nenastane nenulový zbytek. Tuto oparaci provádíme cyklem DO WHILE. Po každém vydělení vytiskneme dělitele a číslo
vydělíme dělitelem. Pokud nastane nenulový zbytek, zvýšíme dělitele o 1 a operaci opakujeme do té doby, dokud
nebude mít číslo hodnotu 1.
Příklad pro číslo 120:
120 mod 2 = 0, vytiskneme 2 a podělíme číslo 120 div 2 = 60
60 mod 2 = 0, vytiskneme 2 a podělíme číslo 60 div 2 = 30
30 mod 2 = 0, vytiskneme 2 a podělíme číslo 30 div 2 = 15
15 mod 2 = 1, zvýšíme hodnotu dělitele o 1 na 3
15 mod 3 = 0, vytiskneme 3 a podělíme číslo 15 div 3 = 5
5 mod 3 = 2, zvýšíme hodnotu dělitele o 1 na 4
5 mod 4 = 1, zvýšíme hodnotu dělitele o 1 na 5
5 mod 5 = 0, vytiskneme 5 a podělíme číslo 5 div 5 = 1
číslo má hodnotu 1, program končí
#include "stdafx.h"
#include "math.h"
#include
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
int cislo,delitel;
printf("Zadejte cislo: ");
scanf_s("%d",&cislo,1);
printf("Prvocinitele:");
delitel=2;
do
{
while (cislo%delitel==0)
{
cislo=cislo/delitel;
printf(" %d",delitel);
}
delitel++;
}
while (cislo!=1);
printf("\n");
system("pause");
return 0;
}
program ke stažení