題目: UVa - 11417 - GCD

題目說明

每筆測資會有一個大於 1 且小於 500 的數字,並按照題目的要求算出對應的數字。

解題思路

按照題目給的兩個 for 迴圈來做,GCD 透過輾轉相除法的概念來做即可。

參考解法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include <iostream>

using namespace std;

int GCD(int i, int j)
{
if (j % i == 0)
return i;
else
GCD(j % i, i);
}

int main()
{
int n, G;

while ((cin >> n) && (n != 0))
{
G = 0;

for (int i = 1; i < n; i++)
for (int j = i + 1; j <= n; j++)
G += GCD(i, j);

cout << G << endl;
}
}