タイトル説明
小型Xは、どのくらいの速噂の広がりのスピードを探検したいので、彼は社会実験を行いました。
あり N- 最初はここで、n型個々 私は人の上に衣類の数を持っている私は 、私は。1 + iの+ 。1。小型Xは、パターンを見つけました:数は服の上にあるとき 私は、私は一日のメッセージ人々に知って、彼は次の日は、のために服の数に関する情報を入れて教えてくれる J 人のJ \ GCD (I、J)。1 = GCD (I 、J )= 1(すなわち、 Iは、J Iは、Jは、最大公約数である 。1 1)。で、 0 0日、ブドウの木の上に小さなXを入れて話した k個のk個の個人を、小さなXは、最初の数日間誰もがこの噂を知っている時に知っていただきたいと思います。
誰もがその日、このゴシップが知っている必要がありますことを示すことができます。
ヒント:あなたは、定理を使用する必要があるかもしれません- バートランドは-定理チェビシェフをカット。
入力形式
ライン 2 2つの正の整数 のn、K N- 、K.
データ範囲:
- 10 ^ {14} \ 2 \ nは2 ≤ N ≤ 1 0 1 4。
- 1個の\ K \ nの1 ≤ k個の≤のN。
出力フォーマット
答えを表す正の整数に並びます。
サンプル入力と出力
3 1
2
6 4
1
説明/ヒント
[試料 1 の説明1]
3 個人的な服3それぞれの数 2 3 4
。
で、 0 0日、小さなXのブドウが最初に語っ入れ 1 、2のための彼の服の数を1人に。
で、 1 日1、最初の 1人の1人が最初に教えてくれます 2 ので、二人を \のGCD(2、3)= 1 GCD (2 、3 )= 1、彼は最初に教えてくれません 3 3人の理由は、 \ GCD( 2,4)= 2 \ NE 1 GCD (2 、4 )= 2 ≠ 1。
最初に 2 日と2、最初の 2人の2人が最初に教えてくれます 3 ので、3人を \のGCD(3、4)= 1 GCD (3 、4 )= 1、そして誰もがこの噂を知っているので、答えは 2 2
書式#include <アルゴリズム> 書式#include <iostreamの> の#include <CStringの> の#include <cstdioを> する#include <cmath> の#include <キュー> std名前空間を使用しました。 長い長いN、K。 (長い長いX){OK BOOL (x == 1){場合 、falseを返します } (x == 2){場合に trueを返します。 } のための(長い長いI = 2; I <= SQRT(X); iは++){ (X%はiは== 0){場合に falseを返します。 } } trueを返します。 } int型のmain(){ scanf関数( "%のLLDの%のLLD"、&N&K)。 IF(OK(K + 1)&&(2 *(k + 1)> N + 1)){ のprintf( "1つの\ n"); } 0を返します。 }