c语言辗转相除法相关代码

c语言的采用辗转相除法求两个数的最大公约数

#include<stdio.h>
int a(int num1,int num2);
int a(int num1,int num2){
    int t;
    if(num1<num2){
        int t=num1;
        num1=num2;
        num2=t;
    }
    while(1){
        if(num1-(num1/num2)*num2==0){
            return num2;
        }else{
            t=num1;
            num1=num2;
            num2=t-(t-(t/num1)*num1);
        }
    }
}
int main(){
    int n1,n2;
    scanf("%d %d",&n1,&n2);
    printf("%d",a(n1,n2));
    return 0;
}

代码可以运行但结果不对


int a(int num1, int num2)
{
    int t;
    if (num1 < num2)
    {
        int t = num1;
        num1 = num2;
        num2 = t;
    }
    t = num1 % num2;
    while (t != 0)
    {
        num1 = num2;
        num2 = t;
        t = num1 % num2;
    }
    return num2;
}