const int maxn=32767;
int prime[50],isprime[maxn];
struct P_factor
{
int p,k;
P_factor()
{
p=k=0;
}
P_factor(int x,int y)
{
p=x;
k=y;
}
};
vector <P_factor> divide_factor(int x)
{
vector <P_factor> R;
R.clear();
for(int i=1;i<=prime[0];i++)
{
int p=prime[i];
if(p*p>x)
break;
if(x%p==0)
{
int k=0;
while(x%p==0)
{
x/=p;
k++;
}
R.push_back(P_factor(p,k));
}
}
if(x>1)
R.push_back(P_factor(x,1));
return R;
}
void Prepare_Prime(void)
{
memset(isprime,1,sizeof(isprime));
isprime[1]=0;
prime[0]=0;
for(int i=2;i<maxn;i++)
{
if(isprime[i])
{
prime[++prime[0]]=i;
模板 欧拉筛法 分解质因数
最新推荐文章于 2020-09-26 00:02:51 发布
本文探讨了使用欧拉筛法高效地找出所有小于给定数的质数,并介绍了如何应用这种方法进行质因数分解。通过实例详细解释了算法的实现过程。
摘要由CSDN通过智能技术生成