首页 > 其他 > 详细

洛谷 质因子分 p2043

时间:2018-07-07 16:29:44      阅读:126      评论:0      收藏:0      [点我收藏+]

#include <iostream>
#include <algorithm>
#include <cstring>
using namespace std;

const int N = 10000+50;
bool isprime[N];
int prime[N/2],pn;
int ans[N];
void getPrimes(int maxn)
{
pn = 0;
memset(isprime,true,sizeof(isprime));
isprime[0] = isprime[1] = false;
for(int i=2;i<=maxn;i++)
{
if(isprime[i]) prime[++pn] = i;
for(int j=1;j<=pn;j++)
{
if(i*prime[j]>maxn) break;
isprime[i*prime[j]] = false;
if(i%prime[j]==0) break;
}
}
return;
}
int main()
{
getPrimes(N);
int n;
cin >> n;
for(int i=2;i<=n;i++)
{
int tmp = i;
for(int j=1;j<=pn;j++)
{
while(tmp%prime[j]==0)
{
ans[prime[j]]++;
tmp/=prime[j];
}
}
}
for(int i=1;i<=n;i++)
{
if(ans[i])
{
cout << i << " " << ans[i] << endl;
}
}
return 0;
}

洛谷 质因子分 p2043

原文:https://www.cnblogs.com/zmhdbk/p/9277497.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!