题目:
for i=1 to n
for j=1 to n
sum+=gcd(i,j)
给出n求sum. gcd(x,y)表示x,y的最大公约数.
输入输出格式
输入格式:n
输出格式:sum
代码:
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
int gcd(int x,int y)
{
if(y>x)
return gcd(y,x);
if(!y)
return x;
else
return gcd(y , x%y);
}
int main()
{
int n;
int sum=0;
scanf("%d",&n);
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
sum+=gcd(i,j);
cout<<sum<<endl;
return 0;
}
用的方法是辗转相除法,但是莫名RE7个点。