2017-07-28 3 views
1
temp=input() 
l=list(map(int,temp.split())) 
count=0 
for i in range (1,min(l[0],l[1])+1): 
    if l[0]%i==0 and l[1]%i==0: 
     count+=1 
print (count) 

上記のコードは、2つ以上の数字を取り、共通の要因の数を検出します。これらの数値の範囲は1〜10 ** 12です。文字列をそれぞれのデータ型に変換します。 intまたはlong(python3)

このコードでint型とlong型の両方のデータ型を処理する方法はありますか?親切に助けてください。

+1

のpython3で長いとint型の区別がないから

。 (長いのは存在しません...) –

+0

わかりませんが、1から10 ** 12まで繰り返す予定ですか?それは悪い考えだから... –

+0

@ Jean-FrançoisFabreこの問題を解決したら、より良い方法を見つけるでしょう。コードは大きな値の出力を与えていません。 –

答えて

2

Python 3とは対照的に、Python 3はintlongを区別しません(longはPython 3からはなくなりました)。 64ビットよりもさらに長い整数に過ぎません。 Pythonの3のドキュメント

Integers have unlimited precision.

+0

Python 2ではその違いがあります。 hiroのコメントをより詳細な答えにコピーする必要はありません。 –

+0

@ Jean-FrançoisFabre私はそのコメントに気づいていません。いずれにせよ私はそれをコミュニティとしてマークしているので、質問には何らかの答えがあります。 – Qeek

+0

驚くべきことに、私は正確な重複を見つけることができなかったので、あなたの答えをupvoting。 –

関連する問題