タイトル説明
Xiao Mingは数学を学ぶのが好きで、奇妙な問題を起こすのが好きです。この日、彼は与えられたNに対して「M <N、gcd(N、M)== 1、Mは偶数」を満たすMの数を知りたいと思っています。 。Xiaomingがこの問題を解決するのに役立つプログラムを書いてください。
入力データ
入力データの最初の行は正の整数Tで、これはテストデータのグループの数を表します。テストデータの次のTグループでは、テストデータの各グループは1行で、整数N(1≤T≤100、1≤N≤10000)を含みます。
出力データ
入力データの各セットについて、「ケース#id:M」を別の行に出力します。これは、idグループデータの結果がMであり、idが1から始まることを示します。
サンプル入力
4
1
2
11
23
サンプル出力
ケース#1:0
ケース#2:0
ケース#3:5
ケース#4:11
ヒント:
gcd(a、b)== 1は、aとbの最大公約数が1であること、つまりaとbが互いに素であることを意味します。
経験:除算を通じて最大公約数を見つける
def gcd(a, b): #辗转相除法求最大公约数
if b == 0:
return a
else:
return gcd(b, a%b)
T = int(input())
for n in range(T) :
dArray = []
inputStr = input()
if inputStr != "":
N = int(inputStr)
M = 0
for count in range(int((N+1)/2)-1):
if gcd(N, (count+1)*2) == 1:
M += 1
print("Case #%d: %d" % (n + 1 , M))
else:
break