|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
31.12.2008, 01:02 | #1 |
Software Developer
Старожил
Регистрация: 19.12.2008
Сообщений: 2,070
|
Разложение числа на множители
Дано натуральное число. Напечатать разложение этого числа на простые множители. Реализовать два варианта:
a) каждый простой множитель должен быть напечатан столько раз, сколько раз он входит в разложение. b) каждый простой множитель должен быть напечатан один раз. Вариант а) я сделал вот так : Код:
Будь проще и люди к тебе потянутся
|
31.12.2008, 02:43 | #2 |
Студент 1 курса
Форумчанин Подтвердите свой е-майл
Регистрация: 27.06.2008
Сообщений: 959
|
ну запоминай в массив какие были множители и потом смотри if присуствует в массиве then не выводи else выводи
C++(STL, QT, WinInet) / DHTML(CSS) / JavaScript / PHP Developer
|
31.12.2008, 20:09 | #3 |
Software Developer
Старожил
Регистрация: 19.12.2008
Сообщений: 2,070
|
Ozerich я тоже так хотел, но у меня не получается.
Если не тяжело можешь привести пример.
Будь проще и люди к тебе потянутся
|
31.12.2008, 21:17 | #4 |
Форумчанин
Регистрация: 22.12.2008
Сообщений: 104
|
а)
uses crt;
var i,n,:integer; begin clrscr; write(' -> '); readln(n); writeln; i:=2; write(n,'='); while (n mod i=0) and (i<=n) do begin write(i,' '); n:=n div i; end; i:=3; while n>=i do begin while (n mod i=0) do begin write(i,' '); n:=n div i; end; i:=i+2; end; readln; end.
@(o_0)@
|
31.12.2008, 21:17 | #5 |
Форумчанин
Регистрация: 22.12.2008
Сообщений: 104
|
б)
uses crt;
var mas:array[1..20] of integer; f:boolean; i,n,j,k:integer; begin clrscr; write(' -> '); readln(n); writeln; i:=2; k:=0; for j:=1 to 20 do mas[j]:=0; while (n mod i=0) and (i<=n) do begin f:=true; for j:=1 to 20 do if mas[j]=i then f:=false; if f then begin k:=k+1; mas[k]:=i; end; n:=n div i; end; i:=3; while n>=i do begin while (n mod i=0) do begin f:=true; for j:=1 to 20 do if mas[j]=i then f:=false; if f then begin k:=k+1; mas[k]:=i; end; n:=n div i; end; i:=i+2; end; for i:=1 to k do write(mas[i],' '); readln; end.
@(o_0)@
|
01.01.2009, 12:32 | #6 |
Software Developer
Старожил
Регистрация: 19.12.2008
Сообщений: 2,070
|
Tkirill, спасибо за помощь.
Будь проще и люди к тебе потянутся
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
разложение на простые множители | pakusya | Помощь студентам | 2 | 19.12.2011 15:55 |
Разложение числа на простые делители | PROFI_I | Общие вопросы Delphi | 2 | 09.12.2008 18:17 |
Паскаль. Разложение на множители. | Arizonec | Помощь студентам | 3 | 13.11.2008 00:41 |
Разложение числа на простые множители | artem_MG | Паскаль, Turbo Pascal, PascalABC.NET | 3 | 24.10.2008 19:28 |
Разложение числа на слагаемые | Oleg-vp | Общие вопросы Delphi | 5 | 30.10.2007 10:43 |