Navigace: Hlavní stránka -> Jazyk C -> 04 Cykly -> 04.23 Rozklad čísla na prvočinitele

MENU

04.23 Rozklad čísla na prvočinitele

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í