用PDL语言写一个判断是否为素数
时间: 2024-11-27 15:24:26 浏览: 1
pdl语言讲解(设计性程序语言)
在Prolog编程语言(Programming Description Language),素数检查通常通过递归的方式实现。下面是一个简单的例子,用于判断一个数字n是否为素数:
```pdl
% 定义一个辅助函数is_divisible_by(X, Y), 如果X能被Y整除返回true,否则false
is_divisible_by(X, Y) :-
X mod Y =:= 0.
% 主函数is_prime,接受一个正整数n作为输入
is_prime(N) :-
% 1不是素数,2是最小的素数
N < 2 -> false;
% 检查从2到sqrt(N)是否有因子
is_divisible_by(N, M),
M > 1,
!; % 如果找到因子,则不是素数,中断搜索
N > 2, % 如果大于2,继续递归检查更大的因子
is_prime(N - 1).
% 示例查询:判断5是否是素数
?- is_prime(5).
```
在这个程序中,`is_prime`首先排除了小于2的情况,然后尝试将`N`除以每个可能的因子`M`,如果能找到一个因子则直接返回false,表示`N`不是素数;否则,递归地检查`N - 1`是否为素数。
阅读全文