IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Разложение натурального числа
сообщение
Сообщение #1


Бывалый
***

Группа: Пользователи
Сообщений: 233
Пол: Женский
Реальное имя: Dasha

Репутация: -  0  +


Задание:разложить натуральное число N на простые множители

я сделала программу,но она в конце выводит совсем ненужный 0...
подскажите,пожалуйста,как этого избежать?

var
mn: array [1..100] of integer;
i,k,n,kol:integer;

begin

write('Vvedite naturalnoe chislo n=');readln(n);
writeln('Razlojim naturalnoe chislo n na prostie mnojiteli:');

i:=1;k:=3;
repeat
if ((k mod 2)<>0) and ((n mod k) = 0) then begin
n:=trunc(n/k);
mn[i]:=k;
write(mn[i],' ');
inc(i);
end
else inc(k);
until n=1;
kol:=i;
writeln;

i:=0;
while i<kol do
begin
inc(i);
repeat
k:=1;
if (i<kol) and (mn[i]=mn[i+1]) then begin
inc(k);
inc(i);
end;
until (i<=kol) or (mn[i]<>mn[i+1]) ;
write(mn[i],'^',k,' ');
end;
readln;
end.


--------------------
irreparabilium felix olivio rerum
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






Поиском пользоваться не пробовала?
Разложение числа на простые множители...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Бывалый
***

Группа: Пользователи
Сообщений: 233
Пол: Женский
Реальное имя: Dasha

Репутация: -  0  +


дело в том,что я хочу вывести результат в виде
простых сомножителей с соотвествующими степенями...
собственно в выводе этого результата и состоит проблема...
посмотри,пожалуйста...


--------------------
irreparabilium felix olivio rerum
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гость






Tribunal, ты будешь смеяться, но у меня никакой 0 не выводится... Программа просто зацикливается и печатает -1 и -2... smile.gif Что я неправильно делаю? Ввел число 20...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Гость






Цитата(Tribunal @ 7.06.2006 16:06) *
собственно в выводе этого результата и состоит проблема...

Так:
var
mn: array [1..100] of integer;
i,k,n:integer;

begin

write('Vvedite naturalnoe chislo n=');readln(n);
writeln('Razlojim naturalnoe chislo n na prostie mnojiteli:');

k:=2;
repeat

if (n mod k) = 0 then begin
n := n div k;
inc(mn[k]);
write(k, ' ');
end
else inc(k, 2 - byte(k = 2));

until n=1;

writeln;

i := 1;
while i <= k do begin { <--- Изменил !!! }
if mn[i] > 0 then write(i, '^', mn[i], ' ');
inc(i);
end;
readln;
end.

?

Сообщение отредактировано: volvo -
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Бывалый
***

Группа: Пользователи
Сообщений: 233
Пол: Женский
Реальное имя: Dasha

Репутация: -  0  +


а у меня ваша программа не всегда работает...)

например,258,456...то есть видимо четные чмсла...


--------------------
irreparabilium felix olivio rerum
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Гость






Посмотри теперь - я кое- что подправил (хотя и так разложение работало, просто со степенями глюки были)... Заодно прикрепляю то, как я вижу результат у себя:


Эскизы прикрепленных изображений
Прикрепленное изображение
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Бывалый
***

Группа: Пользователи
Сообщений: 233
Пол: Женский
Реальное имя: Dasha

Репутация: -  0  +


круто...пасиба))


--------------------
irreparabilium felix olivio rerum
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 




- Текстовая версия 19.12.2017 5:05
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"