Äàíî íàòóðàëüíîå ÷èñëî N. Ðàçëîæèòü åãî íà ïðîñòûå ìíîæèòåëè.
PROGRAM PRG_3;
VAR I, N, F, J : INTEGER;
BEGIN
{ÄÀÍÎ ÍÀÒÓÐÀËÜÍÎÅ ×ÈÑËÎ N. ÐÀÇËÎÆÈÒÜ ÅÃÎ ÍÀ ÏÐÎÑÒÛÅ ÌÍÎÆÈÒÅËÈ.}
REPEAT
WRITELN('ÂÂÅÄÈÒÅ ÍÀÒÓÐÀËÜÍÎÅ ×ÈÑËÎ N = ');
READLN (N);
UNTIL N>0;
F :=0;
J:=N;
FOR I := 2 TO N DIV 2 DO
BEGIN
IF J MOD I = 0 THEN BEGIN
F := 1;
WHILE J MOD I = Î DO
BEGIN
WRITE('*', I);
J := J DIV I END;
END;
(F ÎÏÐÅÄÅËßÅÒ, ÁÛËÈ ËÈ ÍÀÉÄÅÍÛ ÏÐÎÑÒÛÅ ÌÍÎÆÈÒÅËÈ, ÊÎÒÎÐÛÅ ÁÎËÜØÅ ÅÄÈÍÈÖÛ}
IP F = Î THEN WRITELN('*', N) ELSE
WRITELN
END.
Äëÿ ðåøåíèÿ çàäà÷è:
- ôîðìèðóåì òåëî ïðîãðàììû è îïèñûâàåì ïåðåìåííûå;
- ââîäèì íàòóðàëüíîå ÷èñëî N;
- â öèêëå ïî ïåðåìåííîé I íà÷èíàåì ïîðîæäåíèå íàòóðàëüíûõ ÷èñåë, íå ïðåâîñõîäÿùèõ N/2;
- åñëè òàêîå ÷èñëî ÿâëÿåòñÿ äåëèòåëåì, òî îïðåäåëÿåì, ñêîëüêî òàêèõ äåëèòåëåé, óìåíüøàÿ ÷èñëî N;
- â çàâèñèìîñòè îò çíà÷åíèÿ ôëàãà F âûâîäèì ðåçóëüòàò.
Ïåðåìåííûå:
N - èññëåäóåìîå ÷èñëî; I, J - ïåðåìåííûå öèêëîâ; F - âñïîìîãàòåëüíûé ôëàã.
|