Prolog 除数
编写一个谓词来计算列表中每个项目的每个除数。 (除数不能是 1 和他自己)。 这就是我编写数字除数代码的方法。但我不知道更多。
divides(N,D) :-
0 is N mod D,
D < N/2,
D > 1.
divisors_0( N, D, R0,[D|R0] ) :- divides(N,D).
divisors_0( N, D, R0, R0 ) :- \+ divides(N,D).
divisors( _, 0, R, R ).
divisors( N, D0, R0, R ) :-
divisors_0(N,D0,R0,R1),
D is D0 - 1,
divisors(N,D,R1,R).
divisors(X,R) :-
X > 1,
divisors(X,X,[],R),
!.
为了吸引我使用:divisors(number *like 45,24, etc *, X)
Write a predicate that calculates every divisors of every item in a list. (the divisor can't be 1 and himself).
That's how I did the code for divisors of a number. But I don't know more.
divides(N,D) :-
0 is N mod D,
D < N/2,
D > 1.
divisors_0( N, D, R0,[D|R0] ) :- divides(N,D).
divisors_0( N, D, R0, R0 ) :- \+ divides(N,D).
divisors( _, 0, R, R ).
divisors( N, D0, R0, R ) :-
divisors_0(N,D0,R0,R1),
D is D0 - 1,
divisors(N,D,R1,R).
divisors(X,R) :-
X > 1,
divisors(X,X,[],R),
!.
For appelating I use : divisors(number *like 45,24, etc *, X)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
一个可能的解决方案可能是:
A possible solution could be: