输入一个整数,判断这个数字是不是质数。

本文介绍了质数的概念,分析了判断质数的思路,并提供了代码实现。通过循环判断输入的数字是否能被小于它的数整除,从而确定是否为质数。同时,文章给出了不同输入情况下的运行结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、什么是质数?

质数又称素数。一个大于1的自然数,除了1和它本身外,不能整除其他自然数的数叫做质数;否则称为合数。


二、思路分析:

  • 定义一个表示,默认值为 true(默认为质数);
  • 判断输入的数是否大于零,若为否,则提示 “输入正整数”;
  • 输入的数不能为1,满足则进行4,5步骤;不满足则提示 “1不是质数”;
  • 循环符合条件的数:
    • 初始值从0开始;
    • $i(循环数) < $num(输入的数);
    • 增量为1;
    • 判断 $num(输入的数) % $i(循环数) 是否为0,为0,则不是质数,且标志 $flag = false,且 break跳出该循环
  • $flag = true 或者 $num(输入的数) == 2,则为质数

三、代码实现:

/**
 * getPrimeNum 判断是否为质数
 * @param  int    $num  所要判断的数
 */
function getPrimeNum($num)
{
    // 1. 定义一个标识,默认为 true(默认为质数)
    $flag = true;
    
    // 2. 判断输入的数是否大于零
    if ($num > 0) {
        
    	// 3. 输入的数不可为1(1既不是质数,又不是素数)
        if ($num != 1) {
            // 4. 循环符合条件的数
            for ($i = 2; $i < $num; $i++) {
            	// 输入的数 % 循环数 = 0 (说明可以被整除,不是质数)
                if ($num % $i == 0) {
                    echo $num.'不是质数';
                    // 标识变为 false
                    $flag = false;
                    break;
                }
            }
            if ($flag || $num == 2) {
                echo $num.'是质数';
            }
            
        } else {
            echo '1不是质数';
        }
        
    } else {
        echo '请输入正整数';
    }
}

$num = 11;
$res = getPrimeNum($num); // 调用函数
print_r($res);

运行结果:

传入的数为0时,运行结果:

这里写图片描述

传入的数为1时,运行结果:

这里写图片描述

传入的数为11时,运行结果:

这里写图片描述

传入的数为12时,运行结果:

这里写图片描述


四、简单方法:

由于1既不是质数,又不是素数,可以用循环,直接从2开始。

function is_prime($num)
{
    for ($i = 2; $i < $num; $i++) {
        if ($num % $i == 0) {
            return $num.'不是质数';
        }
    }
    
    return $num.'是质数';
}

echo is_prime(3);

运行结果:

传入的数为3

这里写图片描述

传入的数为4

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值