Python 完全平方和

若您覺得文章寫得不錯,請點選文章上的廣告,來支持小編,謝謝。

筆者有用C++來解高中生解題系統上的 高中生程式解題系統:完全平方和
(題目連結:https://zerojudge.tw/ShowProblem?problemid=a059) 一題。

本篇換用 Python 程式語言來解,演算法如下:
找出在範圍 [a, b]內大於或等於 a 的完全平方數(curSquare),與 a 的平方根(minRoot)。
當 curSquare 小於或等於 b 時
{
  將 curSquare 加到 squareSum 裡
  minRoot += 1
  curSquare = minRoot * minRoot
}
Python程式碼:
 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
from math import sqrt
    
n = int(input())

for i in range(n):
    a = int(input())
    b = int(input())

    # Current Square Number
    curSquare = 0

    # Minimal square root
    minRoot = int(sqrt(a))
    if minRoot * minRoot == a:
        curSquare = a
    else:
        minRoot = minRoot + 1
        curSquare = minRoot * minRoot

    squareSum = 0
    while curSquare <= b:
        squareSum += curSquare
        minRoot += 1
        curSquare = minRoot * minRoot

    print("Case " + str(i + 1) + ":", squareSum)

沒有留言: