指定された整数N、品質係数のN!分解階乗試験では、分解の出力は、フォームピピであることと算術の基本定理を遊泳することができます。
入力フォーマット
整数N.
出力形式
N!品質係数、総行数、ペアのパイ、cipi、CIの各ラインの分解の結果は、pciipici項目を含んで表します。出力ピピに従って順序を昇順。
データ範囲
1≤N≤1061≤N≤106
入力サンプル:
5
出力サンプル:
2. 3
。3。1
。5 1
サンプル説明
5!= 120 = 3 * 5 * 23
アイデア:
1.まず1--素数nがスクリーニングされる
列挙素数のそれぞれのn!番号
#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std;
const int N = 1000010;
int primes[N], cnt;
bool st[N];
void init (int n ){
for (int i = 2; i <= n ; i ++){
if (!st[i]) primes[cnt ++] = i;
for (int j = 0; primes[j] * i <= n ; j ++){
st[primes[j] * i] = true;
if (i % primes[j] == 0) break;
}
}
}
int main(){
int n;
cin >> n;
init(n);
for (int i = 0; i < cnt; i ++){
int p = primes[i];
int s = 0;
for (int j = n; j ; j /= p) s += j;
printf("%d %d\n", p, s);
}
return 0;
}