I want to help this code to calculate the greatest common laboratory

#include<iostream>
using namespace std;
int GCD (int num , int x )
{
for ( int m = x ; m <= num ; m++ )
{
for ( int m2 = x ; m2 <= num ; m2++ )
{
for (int i = 1 ; i*i <= m ; i++)
{
if ( ( m2 % (m/i) == 0 ) && (m % i == 0 ) )
return i;


else if ( m2 % i == 0 && m % i == 0)
return i ;
}
}
}
}


int main ()
{
int n , sum ;
cin>>n;
for (int x = 1 ; x <= n ; x++ )
{
sum=sum+GCD (n,x);
}
cout<<sum<<endl;
sum=0;
return 0;
}
You mean greatest common factory or greatest common denominator?

There's a recursion for gcd already:

1
2
3
4
5
6
7
int gcd(int num, int denom) {
  if (num % denom) {
    return gcd(denom, num % denom);
  } else {
    return denom;
  }
}

Works for gcf also.

if you want a positive value, then:
return (denom < 0) ? -denom : denom;
instead of:
return denom;
Topic archived. No new replies allowed.