Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.12.2016, 23:52   #1
abc7
 
Регистрация: 20.02.2013
Сообщений: 6
По умолчанию Сумма всех трехзначных чисел, не делящихся ни на 5, ни на 7 на Prolog

Никак не могу разобраться с условием кратности 5 и 7.
Код:
implement main
    open core
 
 
class predicates 
    sum : (integer N, integer S) procedure (i, o).
 
clauses
    classInfo("main", "1.0").
    
   sum(N, 1) :- N<100, !.
   sum(N,1) :- N mod 5 = 0, N mod 7 = 0, !.
   sum(N, N+S) :- sum(N-1, S).
 
 
    run():- console::init(),
          
        sum(999, S), stdio::write(S), stdio::nl.
         
end implement main
 
goal
    mainExe::run(main::run).
abc7 вне форума Ответить с цитированием
Старый 26.12.2016, 10:13   #2
iborisov
Пользователь
 
Регистрация: 09.12.2016
Сообщений: 13
По умолчанию

На данный момент в Прологе я полный ноль, но если проблема только в
Цитата:
Сообщение от abc7 Посмотреть сообщение
не могу разобраться с условием кратности 5 и 7
, предлагаю попробовать:
Код:
(N mod 5)*(N mod 7)
Результат этого, отличный от нуля, будет сигнализировать, что число не делится ни на 5, ни на 7 без остатка.

Update:
Код:
sum(0, 0). 
sum(X, R) :-
    X > 99,
    (X mod 7)*(X mod 5) > 0, 
    Y is X - 1, 
    sum(Y, R1),
    R is X + R1;
    Y is X - 1, 
    sum(Y, R1),
    R is R1.

main :-
    sum(999, S),
    writeln(S). 
:- main.
Проверено на онлайн компиляторе
Осталось только адаптировать под ваш компилятор, если необходимо.

Последний раз редактировалось iborisov; 26.12.2016 в 15:43.
iborisov вне форума Ответить с цитированием
Старый 27.12.2016, 13:49   #3
abc7
 
Регистрация: 20.02.2013
Сообщений: 6
По умолчанию

Нет, в Visual Prolog не работает, ругается на is. Но все равно спасибо. Я сам первый раз на прологе пишу.
abc7 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Найти количество трёхзначных чисел делящихся на 7 и не делящихся на 3 TsykunovDmitriy Паскаль, Turbo Pascal, PascalABC.NET 3 07.05.2014 23:05
Нахождения всех трехзначных чисел kate63 Помощь студентам 5 24.09.2012 16:45
Pascal.Определить к-количество трехзначных натуральных чисел,сумма цифр которых n (n=13). naty7773 Помощь студентам 2 11.01.2012 16:43
список всех четырехзначных нечетных чисел, делящихся без остатка на сумму своих цифр. Kami-sama Общие вопросы C/C++ 2 12.11.2010 17:07