1. paizaラーニングトップ
  2. レベルアップ問題集
  3. Aランク・スキルチェック過去問題セット(言語選択)
  4. 問題一覧 R(Beta)編
  5. ある数でつくられた数列 R(Beta)編

Aランク・スキルチェック過去問題セットのサムネイル
ある数でつくられた数列 R(Beta)編(paizaランク A 相当)

問題にチャレンジして、ユーザー同士で解答を教え合ったり、コードを公開してみよう!

問題

下記の問題をプログラミングしてみよう!

あなたは 3 つの素数 P_1, P_2, P_3 を使って数列をつくることになりました。
その数列は 1 に 3 つの素数を複数回掛け合わせてできた数を小さい順に並べたものとなっています。
ある素数を一回も使わないこともあることに注意してください。

あなたはその数列で k 番目のものを出力するプログラムを作成してください。

例えば、入力例 1 では下の図のように数列ができ、7 番目の数となる 8 が出力されます。

![図](./img/figure.png)

入力される値

入力は以下のフォーマットで与えられます。

P_1 P_2 P_3 k

3 つの素数を表す整数 P_1, P_2, P_3 と数列の出力する項を表す整数 k がこの順で半角スペース区切りで与えられます。
入力は 1 行となり、末尾に改行が 1 つ入ります。


入力値最終行の末尾に改行が1つ入ります。
文字列は標準入力から渡されます。 標準入力からの値取得方法はこちらをご確認ください
期待する出力

数列の k 番目に小さい数を出力してください。
答えは 64 bit 符号付き整数の範囲に収まります。
末尾に改行を入れ、余計な文字、空行を含んではいけません。

条件

すべてのテストケースにおいて、以下の条件をみたします。

* 入力はすべて整数
* P_1, P_2, P_3 はそれぞれ相異なる素数
* 2 ≦ P_1, P_2, P_3 ≦ 7
* 1 ≦ k ≦ 1,000

入力例1

2 3 5 7

出力例1

8

入力例2

3 2 7 1

出力例2

1

入力例3

3 5 7 1000

出力例3

81716054175

問題一覧へ戻る

ページの先頭へ戻る