Largest prime factor
题目链接:https://projecteuler.net/problem=3
题目描述:
The prime factors of 13195 are 5, 7, 13 and 29.
What is the largest prime factor of the number 600851475143 ?
题目大意:求600851475143的最大质因子
代码方法如下:
1 #include <cstdio> 2 #include <cmath> 3 #include <algorithm> 4 using namespace std; 5 6 const long long maxn=600851475143; 7 const int Max=3e6; 8 int p[Max]; 9 10 void pre(){ //打表求出maxn内的所有素数 11 for(int i=0;i<=Max;i++){ 12 p[i]=1; 13 } 14 p[0]=p[1]=0; 15 for(int i=2;i<Max;i++){ 16 if(p[i]){ 17 for(int j=i+i;j<Max;j+=i){ 18 p[j]=0; 19 } 20 } 21 } 22 } 23 24 int main(){ 25 pre(); 26 int a=ceil(sqrt(600851475143)); 27 if((long long)a*a ==maxn &&p[a]){ 28 printf("%d\n",a); 29 } 30 else{ 31 for(int i=a-1;i>=1;i--){ 32 if(p[i] &&maxn%i==0){ 33 printf("%d\n",i); 34 break; 35 } 36 } 37 } 38 }
由于PE前面的几道题都比较,所以就不具体解释了~
看我博客的老铁如果有其他方法还请在评论下面告诉我,谢谢~
版权声明:本文允许转载,转载时请注明原博客链接,谢谢~