P2043 质因子分解
题目描述
对N!进行质因子分解。
输入输出格式
输入格式:
输入数据仅有一行包含一个正整数N,N<=10000。
输出格式:
输出数据包含若干行,每行两个正整数p,a,中间用一个空格隔开。表示N!包含a个质因子p,要求按p的值从小到大输出。
输入输出样例
说明
10!=3628800=(2^8)*(3^4)*(5^2)*7
哦哟,怎么这么多长得这么像的题啊。。。
全都是质因数质因数。
哦不对,这个是质因子hhh。
好喜欢黑尾酱啊,
黑尾酱太漂亮了❤。
祝福李诞&&黑尾酱。
来直接看看代码吧,
我都快晕了。
这个题!我大哥说了!:
· 线筛
· 求出1~n每个数的最小质因数
· 然后O(n)枚举统计答案
· 求出1~n每个数的最小质因数
· 然后O(n)枚举统计答案
//对N!进行质因子分解。 #include<iostream> #include<cstdio> #include<algorithm> #include<cmath> #include<cstring> using namespace std; int n,a[10002]; int main() { scanf("%d",&n); for(int i=2;i<=n;++i) { int x=i; for(int j=2;j<=i;++j) while(x%j==0) { a[j]++; x/=j; } } for(int i=1;i<=10000;++i) if(a[i]) printf("%d %d\n",i,a[i]); return 0; }
//如果你不开心,那我就把右边这个zz大炸分享给你吧,
//你看,他这么好看,跟个大傻子一样看着你,你还伤心吗?
//一切都会过去的。
//时间时间会给你答案2333
这几个题,思路都差不多。