2021-2022-1 20211420《信息安全专业导论》求最大公约数伪代码

什么是欧几里得算法(辗转相除法)

欧几里得算法(辗转相除法)
算法说明如下

设计欧几里得算法伪代码

Find the gcd of two numbers      //算法标题
Set gcd to 0                     //初始化最大公约数
Read num1                        //输入num1
Read num2                        //输入num2
Label next statement as A        //标记下一条语句,方便使用goto语句返回  
IF (num1 >= num2)                //判断num1和num2的相对大小
    Set result to the remainder of num1 divided by num2    //对num1除以num2取余数
    IF (result = 0)                  //判断余数是否为0
        set gcd to gcd + num2        //满足条件就将gcd赋值为num2
        Write "The gcd is", gcd      //输出gcd
    ELSE
        num1 <- num2                 //将num2赋值给num1,此时num2值没有改变
        num2 <- result               //将result赋值给num2,此时result值没有改变
        goto A                       //返回语句A,同时将result赋值为新的num1除以num2所取的余数
ELSE
    Set result to the remainder of num2 divided by num1    //对num2除以num1取余数
    IF (result = 0)                  //判断余数是否为0
        set gcd to gcd + num1        //满足条件就将gcd赋值为num1
        Write "The gcd is", gcd      //输出gcd
    ELSE
        num2 <- num1                 //将num1赋值给num2,此时num1值没有改变
        num1 <- result               //将result赋值给num1,此时result值没有改变
        goto A                       //返回语句A,同时重新判断条件进行下一次循环

测试过程

posted @ 2021-11-01 12:53  シバ鳥  阅读(24)  评论(0编辑  收藏  举报