aとbの2つの数が与えられた場合、aまたはbで割り切れるn番目の数を見つけなければなりません。入力番号で割り切れる数が見つかった場合
入力: 最初の行は、テストケースの数を表す整数Tから成る
フォーマットは以下のように見えます。 セカンドラインは三つの整数、b及びN
出力含ま:各テストケースについて を、新しい行のn番目 番号を印刷します。
制約:
1≤t≤105
1≤a、b≤104
1≤N≤10
サンプル入力
サンプル出力
説明
2又は3で割り切れる数である:2,3,4,6,8 、9,10,12,14,15、10番目の数字は15
マイコード
test_case=input()
if int(test_case)<=100000 and int(test_case)>=1:
for p in range(int(test_case)):
count=1
j=1
inp=list(map(int,input().strip('').split()))
if inp[0]<=10000 and inp[0]>=1 and inp[1]<=10000 and inp[1]>=1 and inp[1]<=1000000000 and inp[1]>=1:
while(True):
if count<=inp[2] :
k=j
if j%inp[0]==0 or j%inp[1] ==0:
count=count+1
j=j+1
else :
j=j+1
else:
break
print(k)
else:
break
問題文:単一のテストケース入力の場合 2000 3000 100000私が1秒未満で結果を得ることができる場合complete.Iに1秒以上は欲しい取っています。この問題に対する時間効率的なアプローチがありますか?ここでデータ構造とアルゴリズムを使用できるのでしょうか?
私は2 3 5で行くとあなたの方程式に変換する場合、それは.ITは私達ができる8明らかにされている必要があります7.5に等しい3 * 5月2日になりますどのくらいのケースでそれが渡されますか分からない – codaholic
ああ、私は奇妙なケースを説明していない、申し訳ありません。基本的にすべての偶数Nはbの倍数であり、すべての奇数Nはaの倍数になります。 – Pat
ええと、私は人生を救うために再発を見つけることができません:)私はあなたよりも速いコードで私の最初のコメントを更新しました。 – Pat