php辗转法实现最大公约数

该博客介绍了一种使用PHP实现辗转相除法(欧几里得算法)求解两个数的最大公约数的方法。首先,通过检查表单输入或生成随机数设置初始值,然后确保除数和被除数不为0。接着,不断用较大数除以较小数并取余,直到余数为0,此时较小数即为最大公约数。最后,通过表单提交可以动态计算并显示最大公约数。
摘要由CSDN通过智能技术生成
<?php
header('Content-Type:text/html;charset=utf-8');
//获取表单所传数字,如果没有则生成1-10000之间的随机数为初始值
$num1 = isset($_POST['num1']) ? $_POST['num1'] - 0 : mt_rand(1, 10000);
$num2 = isset($_POST['num2']) ? $_POST['num2'] - 0 : mt_rand(1, 10000);
if ($num1 * $num2) {//判断数据除数或者被除数是否有0的情况
    //判断两个数的大小,如果除数大于被除数,则更换两者之间的位置
    if ($num1 > $num2) {
        $m = $num1;
        $n = $num2;
    } else {
        $m = $num2;
        $n = $num1;
    }
} else {
    $m = '数据输入错误';
}
do {
    $r = $m % $n; //定义两个数之间所求余数
    //余数不为0,则继续使用小的数来除以余数求余
    $m = $n;
    $n = $r;
} while ($r); //如果余数不为0,则继续进行循环
?>
<!--表单提交项-->
<form method="post" action="max.php">
    数字一:<input type="text" name="num1" value="<?php echo $num1; ?>"/><br/><br/>
    数字二:<input type="text" name="num2" value="<?php echo $num2; ?>"/><br/><br/>
    <input type="submit" value="生成最大公约数"/>
    <input type="text" readonly="readonly" value="<?php echo $m; ?>"/>
</form>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值