prime2.bak

来自「人工智能课程学习中的作业」· BAK 代码 · 共 34 行

BAK
34
字号
domains
	int=integer
	mylist=integer *
predicates
	primes(int,mylist)
	integers(int,int,mylist)
	sift(mylist,mylist)
	remove(int,mylist,mylist)
	writelist5(mylist)
	write5(mylist,int)
clauses
	primes(Limit,Ps):-integers(2,Limit,Is),
	sift(Is,Ps).
	integers(Low,High,[Low|Rest]):-
		Low<=High,!,M=Low+1,
		integers(M,High,Rest).
	integers(_,_,[]).
	sift([],[]).
	sift([I|Is],[I|Ps]):-remove(I,Is,New),
	sift(New,Ps).
	remove(_,[],[]).
	remove(P,[I|Is],[I|Nis]):- not(0 = I mod P),
		!,remove(P,Is,Nis).
	remove(P,[I|Is],Nis):-0=I mod P, 
		!,remove(P,Is,Nis).
	writelist5(L):- nl,write5(L,0),nl.
	write5(L,5):- !,nl,write5(L,0).
	write5([H|T],N):-write(H),write("  "),
		N1= N+1,write5(T,N1).
	write5([],_).
goal
	write("please input the uplimit N:"),
	readint(N),nl,primes(N,Ps),writelist5(Ps). 	

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?