最大公约数:
__gcd(i, j)
最小公倍数 2与6的最小公倍数:2*6/6=2
i * j / __gcd(i, j)
1.用头文件的__gcd求最大公约数
#include<stdio.h>
#include<algorithm>
using namespace std;
int main(){
int ans=0;
for(int i=1;i<=2020;i++){
for(int j=1;j<=2020;j++){
if (__gcd(i,j)==1)
ans++;
}
}
printf("%d",ans);
}
2.手写求最大公约数
#include <iostream>
using namespace std;
//欧几里得算法求最大公约数
int gcd(int a,int b)
{
if(a<b)
{
swap(a,b);
}
if(a%b == 0)
{
return b;
}
return gcd(b,a%b);
}
int main()
{
int a,b,i = 0;
for(a=1;a<=2020;a++)
{
for(b=1;b<=2020;b++)
{
if(gcd(a,b) == 1)
{
i++;
}
}
}
cout<<i<<endl;
return 0;
}