C++
#include <iostream>
using namespace std;
int gcd(int a,int b)//利用輾轉相除法
{ //求最大公因數
int re=b;
while(re!=0)//輾轉相除法
{
re=a%b;
if(re==0)//餘數為0時,b是最大公因數
{
return b;
}
else if(re==1)//餘數為1時,1是最大公因數
{
return re;
}
a=b;
b=re;
}
}
int main()
{
int n=1,i,t;
while(cin>>n&&n!=0)//輸入測資
{
int g=0;
for(i=1;i<n;i++)//題目給的程式
{
for(t=i+1;t<=n;t++)
{
g+=gcd(t,i);//依照上面的函式
} //比較大的數放前面
}
cout<<g<<endl;//輸出
}
return 0;
}
請先 登入 以發表留言。