PHP 程序:检查数字是质数还是合数


2022年2月4日, Learn eTutorial
2146

什么是质数和合数?

质数是指除了 1 和它本身之外,没有其他正约数的整数。除了质数之外的自然数被称为合数

例如,2、3、5、7、11、13 等都是质数,因为它们只有 2 个约数;而数字 '4'、'6',它们有超过两个约数,是合数。

让我们以数字 '5' 为例,它是一个质数,因为数字 '5' 只有两个约数:'1' 和 '5'。所以质数只有两个约数。但是,4 不是质数(它是合数),因为 2 x 2 = 4。

如何在 PHP 中检查数字是质数还是合数?

在 PHP 中,可以使用模 (%) 运算符来检查数字是质数还是合数。我们使用了一个用户自定义函数来检查数字,用户输入的数字将作为参数传入,它首先检查该数字是否大于 1。如果数字是 1,它将直接返回 0;否则,它将检查该数字是否能被小于它本身的数字完美整除(通过操作 (num % i == 0))。如果能,它将从函数 check_num() 返回 0;否则,它将返回 1

算法

步骤 1: 将数字接受到变量 num

步骤 2: 创建一个变量 flag 来存储 用户自定义函数 check_num()(带参数 num)的返回值。

步骤 3: 使用 if 语句检查条件,如果变量 flag 的值是 1,则打印 'It is a prime number';否则,使用函数 echo 打印 'It is a composite number'

算法:用户自定义函数:check_num(num)

步骤 1: 使用 if 语句检查 num 是否为 1,如果为真,则作为函数 check_num() 的结果返回 0 并退出,否则执行以下步骤。

步骤 2: 执行 for 循环,将值 2 赋给变量 i,并执行子步骤,直到条件 'i <= num / 2' 变为假,并在每次迭代中增加变量 i 的值。

            (i) 检查条件 'num % i == 0',如果为真,则作为函数 check_num() 的结果返回 0

步骤 3: 作为函数 check_num() 的结果返回 1

 

PHP 源代码

                                          <?
function check_num($num)
{
    if ($num == 1)
        return 0;
    for ($i = 2; $i <= $num / 2; $i++) {
        if ($num % $i == 0)
            return 0;
    }
    return 1;
}
$num = readline("Enter the number: ");
$flag = check_num($num);
if ($flag == 1)
    echo "It is a prime number";
else
    echo "It is a composite number";
?>
                                      

输出

Example 1
Enter the number: 1
It is a composite number

Example 2
Enter the number: 79
It is a prime number

Example 3
Enter the number: 56
It is a composite number