Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 5 693

/ вопрос решён /

Доброго времени суток, уважаемые эксперты! Попробую обратиться со своей проблемой сюда. Необходимо написать на Turbo Prolog следующую задачу: "Разложить число на простые множители". Может есть здесь умельцы пролога.

Примечание #1 (25 октября 2011, 20:17):
Вообщем как это всегда и бывает, пока ждал, сам написал) вот код, пользуйтесь.

domains
i=integer
il=integer*

predicates
for(i,i,i)
find_factor(i,i,i)
factor(i,i)
find_factors(i,il,il)
factors(i,il)
proc1(il)
proc2(i)
proc3

clauses
for(A,_,A).
for(A,B,K):-A
find_factor(K,L,M):-K mod L=0, M=L.
find_factor(K,L,M):-K mod L<>0, L<=sqrt(K),
L2=L+1, find_factor(K,L2,M2), M=M2.
find_factor(K,L,M):-K mod L<>0, L>sqrt(K), M=K.

factor(K,M):-find_factor(K,2,M).

find_factors(1,List,List).
find_factors(K,List1,List2):-K>1,
factor(K,M), K2=K div M, List12=[M|List1],
find_factors(K2,List12,List22), List2=List22.

factors(K,List):-find_factors(K,[],List).
proc1([X]):-write(X).
proc1([H|T]):-proc1(T), write("*",H).

proc2(K):-write(K,"="), factors(K,List), proc1(List).

proc3:-write("N = "), readint(N), N>0, proc2(N), write("\n").

goal
proc3.

Ученый Вопрос решён, но можно продолжить его обсуждение в мини-форуме

Вопрос задал: Ученый (статус: 8-ой класс)
Вопрос отправлен: 25 октября 2011, 18:23
Состояние вопроса: решён, ответов: 0.


Мини-форум вопроса

Всего сообщений: 9; последнее сообщение — 26 октября 2011, 14:50; участников в обсуждении: 3.
min@y™

min@y™ (статус: Доктор наук), 25 октября 2011, 18:30 [#1]:

Пролог в глаза не видел. А на паскале это делается за один перекур.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
Ученый

Ученый (статус: 8-ой класс), 25 октября 2011, 18:38 [#2]:

на паскале, на бейсике, на си даже на лиспе я сам слегнкостью напишу.....а вот на прологе бы....
min@y™

min@y™ (статус: Доктор наук), 25 октября 2011, 18:41 [#3]:

Цитата (Ученый):

а вот на прологе бы....

Пролог сильно отличается от Паскаля/Си/Васика?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
Ученый

Ученый (статус: 8-ой класс), 25 октября 2011, 18:43 [#4]:

совсем другая концепция...
min@y™

min@y™ (статус: Доктор наук), 25 октября 2011, 18:49 [#5]:

Цитата (Ученый):

совсем другая концепция...

Что, там нет массивов, функций, условного оператора и оператора mod?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
Ученый

Ученый (статус: 8-ой класс), 25 октября 2011, 18:56 [#6]:

практически так)
min@y™

min@y™ (статус: Доктор наук), 25 октября 2011, 19:14 [#7]:

Цитата (Ученый):

практически так

Ну, тогда ФТОПКУ!

Цитата (Ученый):

)

Тыкай сюды.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!

25 октября 2011, 20:18: Статус вопроса изменён на решённый (изменил автор вопроса — Ученый)

min@y™

min@y™ (статус: Доктор наук), 25 октября 2011, 20:21 [#8]:

Цитата (Ученый):

вот код, пользуйтесь.

Ога! ОБЯЗАТЕЛЬНО воспользуюсь! :)
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
Ерёмин А.А.

Ерёмин А.А. (статус: *Администратор), 26 октября 2011, 14:50 [#9]:

Цитата (min@y™):

Пролог сильно отличается от Паскаля/Си/Васика?

Мегасильно, это логическое программирование. Год назад приходилось работать, но больше я за это не возьмусь.

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:38
Выполнено за 0.02 сек.