php辗转法实现最大公约数

来源:互联网 发布:光纤传输网络 编辑:程序博客网 时间:2024/06/03 17:18
<?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>
0 0
原创粉丝点击