对N!进行质因子分解。
输入格式:
输入数据仅有一行包含一个正整数N,N<=10000。
输出格式:
输出数据包含若干行,每行两个正整数p,a,中间用一个空格隔开。表示N!包含a个质因子p,要求按p的值从小到大输出。
10!=3628800=(2^8)*(3^4)*(5^2)*7
1 //2018/6/5 22点14分 2 #include <iostream> 3 #include <cstdio> 4 #include <cstring> 5 #include <vector> 6 #include <algorithm> 7 using namespace std; 8 9 const int N = 10001; 10 int n, k; 11 int a[N]; 12 13 void Decom(int n){ 14 vector<int> res; 15 for(int i=2; i<=n; i++){ 16 while(n % i == 0){ 17 res.push_back(i); 18 a[i]++; 19 n /= i; 20 } 21 } 22 } 23 24 int main(){ 25 scanf("%d", &n); 26 for(int i=1; i<=n; i++) 27 Decom(i); 28 for(int i=1; i<=n; i++) 29 if(a[i] != 0) 30 printf("%d %d\n", i, a[i]); 31 32 return 0; 33 }
原文:https://www.cnblogs.com/sineagle/p/9142590.html