4
我必須從序言中的列表中刪除最長的素數序列。 我在序言是新的,我不能找到一種方式來獲得的最長序列...... 這裏是我做了什麼至今:序言中的最長序列
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