您的位置:首页 > 其它

求一个整数的所有因子

2015-07-29 11:45 323 查看
#include<iostream>#include<cmath>#include<cstdio>#include<cstdlib>
using namespace std;typedef long long ll;const int  Max_N=100000;
int main(){    ll n;    int num=0;    ll a[Max_N];    scanf("%lld",&n);    for(ll i=2;i*i<=n;i++)    {        while(n%i==0)        {            a[num++]=i;            n/=i;
}            }
if(n>1)    a[num++]=n;        for(int i=0;i<num;i++)    printf("%lld\n",a[i]);

return 0;}
1.输入一个整数n,求它的所有因子,则从2开始逐个查找。2.找到一个因子x就将其保存并将n除以x直到新的n'中不包含因子x,然后对n'重复 1 操作。
例:n=2*3*5*7*11*13每次从n中找最小因子,找到2后,n'=3*5*7*11*13,再找n'中最小因子3,依次类推。可知最后n'就等于n的最大因子,直接保存。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: