质因子分解
题目描述
对 N ! N! N! 进行质因子分解。
输入格式
输入数据仅有一行包含一个正整数 N N N, N ≤ 10000 N \leq 10000 N≤10000。
输出格式
输出数据包含若干行,每行两个正整数 p , a p,a p,a,中间用一个空格隔开。表示 N ! N! N! 包含 a a a 个质因子 p p p,要求按 p p p 的值从小到大输出。
样例 #1
样例输入 #1
10
样例输出 #1
2 8
3 4
5 2
7 1
提示
10 ! = 3628800 = ( 2 8 ) × ( 3 4 ) × ( 5 2 ) × 7 10! = 3628800 = (2^8) \times (3^4) \times (5^2) \times 7 10!=3628800=(28)×(34)×(52)×7。
#include<iostream>
#include<map>
using namespace std;
map<int,int> primes;
int main(){
int n;cin>>n;
for(int i=2;i<=n;i++){
int t=i;
for(int j=2;j*j<=t;j++){
while(t%j==0){
t/=j;
primes[j]++;
}
}
if(t>1)primes[t]++;
}
for(auto &i:primes){
cout<<i.first<<" "<<i.second<<"\n";
}
return 0;
}