首页 > 代码库 > 找最大质因子问题
找最大质因子问题
题目描述,例如13195的质因子有5,7,13,29,其中29是最大质因子,现在给你一个数600,851,475,143,,让你求它的最大质因子。
这个数记为number,在2-sqrt(number)内先找出质因子然后让number除这些比较小的质因子不断的变小最后剩下的number%i==0的number就是要求的maxnumber(这个number本身是质数的情况要单独讨论下)
以下是AC代码
1 #include<iostream> 2 #include<cstdlib> 3 #include<cstring> 4 #include<cmath> 5 using namespace std; 6 typedef __int64 LL; 7 int main(){ 8 LL number,limit,maxnumber; 9 cin>>number;10 maxnumber=0;11 limit=(LL)sqrt(number);12 for(int i=2;i<=limit;i++)13 if(number%i==0){14 maxnumber=i;15 while(number%i==0){16 number/=i;17 } 18 }19 if(maxnumber=0)20 maxnumber=number;21 cout<<maxnumber;22 return 0;23 }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。