给定整数 N,试把阶乘N! 分解质因数,按照算术基本定理的形式输出分解结果中的 pi和 ci 即可。
输入格式
一个整数 N。
输出格式
N! 分解质因数后的结果,共若干行,每行一对 pi,ci,表示含有 pici 项。按照 pi 从小到大的顺序输出。
数据范围
3≤N≤1e6
输入样例:
5
输出样例:
2 3
3 1
5 1
递归写法(但是1e6的数据范围超时了)
#include "bits/stdc++.h"
using namespace std;
const int N = 1e6+5;
map<int,int>mp;
bool ss(int x){
for(int i=2;i<=sqrt(x);i++){
if(x%i==0) return true;
}
return false;
}
void fun2(int x){
while (x){
if(ss(x)){
for(int i=2;i<=sqrt(x);i++){
if(x%i==0){
mp[i]++;
x/=i;
break;
}
}
}else{
mp[x]++;