回 帖 发 新 帖 刷新版面

主题:请问哪问高手知道整数分解的公式或定理?

怎样快速地把某个整数的各个素因数提取出来,放在一个数组里面,如300,就把它的因数2,3和5提出来。

回复列表 (共1个回复)

沙发

给你一个递归算法:
#include "math.h"
#include "iostream.h"

void yinzi(unsigned n)
{
    int p,i;
    p=(int) sqrt(n);
    for(i=p;i>1;i--)
    {
        if(n%i==0)
        {
            yinzi(i);
            yinzi(n/i);
            return;
        }
    }
    cout<<n;
    cout<<" ";
}


void main()
{
    int s;
    cout<<"给出一个数";
    cin>>s;
    cout<<"质因子为:";
    yinzi(s);
}

我来回复

您尚未登录,请登录后再回复。点此登录或注册