iT邦幫忙

2023 iThome 鐵人賽

DAY 26
0
SideProject30

UVA題型研究系列 第 26

DAY26:GCD

  • 分享至 

  • xImage
  •  

35 UVA11417 GCD
其中 GCD(i,j) 為整數 i 和整數 j 的最大公因數。
如果看不懂Sigma表示方式的話,G 的定義則如以下的程式碼:

G=0;

for(i=1;i<N;i++)

for(j=i+1;j<=N;j++)

{
G+=GCD(i,j);

}

/* GCD()為一個求兩個輸入數字的最大公因數的函數*/

輸入說明
輸入檔最多有 100 行的輸入。每一行有一個整數N (1<N<501)。N 的定義如題幹。輸入以含有一個 0 的一行作為結束,請不要處理這個 0。
輸出說明
就每行的輸入產生一行輸出。這行含有相對於 N 的 G。
範例輸入
10
100
500
0
範例輸出
67
13015
442011
解題:輸入一數字 N,根據定義輸出結果 G

import math  # 匯入math模組,以便使用數學函數

while True:  # 進入無窮迴圈

    N = int(input())  # 使用者輸入一個整數N

    if N == 0:  # 如果N為0,則跳出迴圈
        break  

    G = 0  # 初始化G為0,用來存儲最終的結果

    # 巢狀迴圈,計算所有1到N之間的數對(i, j)的最大公因數總和
    for i in range(1, N):  
        for j in range(i + 1, N + 1):
            G += math.gcd(i, j)  # 使用math.gcd函數計算i和j的最大公因數,並加到G中

    print(G)  # 輸出最終的結果G

上一篇
DAY25: Divide, But Not Quite Conquer!
下一篇
DAY27:Satellites
系列文
UVA題型研究30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言