HCF And LCM with multiple numbers in c



HCF program in c with multiple numbers : 
#include<stdio.h>

int main(){

    int x,y=-1;

    printf("Insert numbers. To exit insert zero: ");
   
    while(1){
         scanf("%d",&x);
         if(x<1)
             break;
         else if(y==-1)
             y=x;
         else if (x<y)
             y=gcd(x,y);
         else
             y=gcd(y,x);
    }

    printf("GCD is %d",y);
   
    return 0;
}

int gcd(int x,int y){
    int i;
    for(i=x;i>=1;i--){
         if(x%i==0&&y%i==0){
             break;
         }
    }
    return i;
}

LCM program in c with multiple numbers :



#include<stdio.h>

int lcm(int,int);



int main(){
   
    int a,b=1;
    printf("Enter positive integers. To quit press zero.");

    while(1){
         scanf("%d",&a);
         if(a<1)
             break;
         else if(a>b)
             b = lcm(a,b);
         else
             b = lcm(b,a);
    }

    printf("LCM is %d",b);

    return 0;
}

int lcm(int a,int b){

    int temp = a;

    while(1){
         if(temp % b == 0 && temp % a == 0)
             break;
         temp++;
    }

    return temp;
}