'''
[程式設計題] 優雅的點
時間限制:1秒
空間限制:32768K
小易有一個圓心在坐标原點的圓,小易知道圓的半徑的平方。小易認為在圓上的點而且橫縱坐标都是整數的點是優雅的,
小易現在想尋找一個算法計算出優雅的點的個數,請你來幫幫他。
例如:半徑的平方如果為25
優雅的點就有:(+/-3, +/-4), (+/-4, +/-3), (0, +/-5) (+/-5, 0),一共12個點。
輸入描述:
輸入為一個整數,即為圓半徑的平方,範圍在32位int範圍内。
輸出描述:
輸出為一個整數,即為優雅的點的個數
輸入例子1:
25
輸出例子1:
12
'''
'''
解題思路:仔細小心
思路不難,如何最高效率的算出所有優雅的點不遺落不重複是難點
将半徑的平方和整除2并開發作為搜尋的範圍
從0開始周遊範圍内的所有整數,把這個整數作為x坐标,利用半徑平方和求出y的坐标判斷其是否為整數
若為整數則該x和y構成的點是優雅的,放入results清單
周遊完成後,開始周遊results清單,利用圓的對稱性:
如果裡面記錄的點中xy坐标有一個是0,則計數+4,若xy坐标相等,計數加4,否則計數+8
輸出計數
'''
'''
代碼運作結果:
答案正确:恭喜!您送出的程式通過了所有的測試用例
'''
import math
r_square = int(input())
cord_range = int(math.sqrt(r_square//2))
results = []
for x in range(cord_range+1):
y = math.sqrt(r_square - x ** 2)
if y == int(y):
results.append((x, y))
count = 0
for each in results:
if each[0] == 0 or each[1] == 0:
count += 4
elif each[0] == each[1]:
count += 4
else:
count += 8
print(count)