Мне нужно удалить самую длинную последовательность простых чисел из списка в Прологе. Я новичок в Прологе, и я не могу найти способ, чтобы добраться до самой длинной последовательности ... Вот что я сделал до сих пор:Самая длинная последовательность в прологе
divisible(X,Y):-
0 is X mod Y.
divisible(X,Y):-
X > Y + 1,
divisible(X,Y+1).
is_prime(2).
is_prime(3).
is_prime(P):-
integer(P),
P>3,
P mod 2 =\= 0,
not(divisible(P,3)).
Это один удаляет простые числа из списка ..
removeP([],[]).
removeP([H],[H]):-
not(is_prime(H)).
removeP([H|T],[H|L]):-
not(is_prime(H)),
removeP(T,L).
removeP([H|T],L):-
is_prime(H),
removeP(T,L).
И здесь я пытался найти самую длинную последовательность, но я понятия не имею, не то, что делать дальше
longest([],[]).
longest([H],[H]):-
is_prime(H).
longest([H],[]):-
not(in_prime(H)).
longest([H|T],L):-
....
Просьба предоставить несколько примеров запросов вместе с ответами, которые вы ожидаете. – repeat
Я предполагаю, что вас не интересуют подпоследовательности, но в подсписок. cf https://en.m.wikipedia.org/wiki/Subsequence vs https://en.m.wikipedia.org/wiki/Substring. – repeat
Например, если у меня есть список [1, 3, 5, 4, 2, 5, 7, 8], приведенный список будет [1, 3, 5, 4, 8] в качестве [2,5,7 ] является самым длинным. – LauraW