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

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

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

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


Пионер
**

Группа: Пользователи
Сообщений: 54
Пол: Мужской

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


Вот как бы код написал но почему то не не правильно работает при больших 'n' и вроде в подпрограмме что то не так(((Надо сделать с подпрограммой (у меня она находит простые числа)
Program razlochenie;
Var n,i,j,k,l,pr,zp:longint;
Procedure prostie;
Begin
   For i:=3 to j do
   For k:=1 to j do
   begin
   if i mod k = 0 then l:=l+1;
   if l=2 then pr:=i;
   end;
   j:=j+1;
   l:=0;
End;
Begin
   write('Введите число n');readln(n);
   pr:=2;j:=4;l:=0;
   write(n,'=');
   While n<>1 do begin
   if (n mod pr = 0) then begin
   n:=n div pr;
   Write(pr,'*');
   end else
   Prostie;
   end;
   readln;
End.

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


Гуру
*****

Группа: Пользователи
Сообщений: 1 013
Пол: Мужской
Ада: Разработчик
Embarcadero Delphi: Сторонник
Free Pascal: Разработчик

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


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


Пионер
**

Группа: Пользователи
Сообщений: 54
Пол: Мужской

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


Цитата(IUnknown @ 2.04.2012 14:19) *

нее охото чтоб через мой метод находило но вот только не катит че то в подпрограмме не так?!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гуру
*****

Группа: Пользователи
Сообщений: 1 013
Пол: Мужской
Ада: Разработчик
Embarcadero Delphi: Сторонник
Free Pascal: Разработчик

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


Цитата
че то в подпрограмме не так?!
Сама подпрограмма "не так". Ты постоянно начинаешь проверять простоту чисел с одного и того же места, соответственно, у тебя постоянно в одном и том же месте L = 2, и Pr в результате всегда равен 3.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Пионер
**

Группа: Пользователи
Сообщений: 54
Пол: Мужской

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


Спасибо сделал так

Program razlochenie;
Var n,i,j,k,l,pr,zp:longint;
Procedure prostie;
Begin
   i:=i+1;
   For k:=1 to j do
   begin
   if i mod k = 0 then l:=l+1;
   if l=2 then pr:=i;
   end;
   j:=j+1;
   l:=0;
End;
Begin
   write('Введите число n ');readln(n);
   pr:=2;j:=4;l:=0;i:=2;
   write(n,'=');
   While n<>1 do begin
   if (n mod pr = 0) then begin
   n:=n div pr;
   Write(pr,'*');
   end else
   Prostie;
   end;
   readln;
End.


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


Гуру
*****

Группа: Пользователи
Сообщений: 1 013
Пол: Мужской
Ада: Разработчик
Embarcadero Delphi: Сторонник
Free Pascal: Разработчик

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


Лучше
Procedure prostie;
Begin
   i:=i+2; { <--- Вот так }
   ...
, а инициализировать i единицей. Потому что понятно, что четных простых чисел быть не может, так и не надо их проверять.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Пионер
**

Группа: Пользователи
Сообщений: 54
Пол: Мужской

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


Цитата(IUnknown @ 2.04.2012 20:08) *

Лучше
Procedure prostie;
Begin
   i:=i+2; { <--- Вот так }
   ...
, а инициализировать i единицей. Потому что понятно, что четных простых чисел быть не может, так и не надо их проверять.

Спасибо ещё раз за помощь)))
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 



- Текстовая версия 19.04.2025 4:42
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name