1. 问题:

The prime factors of 13195 are 5, 7, 13 and 29.
What is the largest prime factor of the number 600851475143 ?

2. 解法(by java in Eclipse)

  

 package com.lun.alrithmetic;
/*
* Q1: what's the primary factor? (1 2 3)
* Q2: i & i+2ne能否遍历出所有质数
*/ public class LargestPrimeFactor { public static void main(String[] args) {
// TODO Auto-generated method stub
long n = 600851475143L;
System.out.println("The largest prime factor of the number '600851475143' is "+largestPrimeFactor(n));
} public static boolean isPrime(long n){
if(n<4)
return n>1;
if(n%2==0 || n%3==0)
return false;
for(long i=5; i*i<n; i+=6)
if(n%i==0 || n%(i+2)==0)
return false;
return true;
} public static long largestPrimeFactor(long n){
if(n%2==0){
while(n%2==0)
n /= 2;
}
if(n%3==0){
while(n%3==0)
n /= 3;
}
for(int i=5; i*i<n; i+=6){
if(n%i==0){
while(n%i==0)
n /= i;
}
int j = i+2;
if(n%j==0){
while(n%j==0)
n /= j;
}
}
return n;
}
}

way1

 package com.lun.alrithmetic;
/*
* Question: What's the largest prime factor of the number '600851475143' ?
* Function: Divide & Conquer, analyse prime factor
*/ public class LargestPrimeFactor2 { public static void main(String[] args) {
// TODO Auto-generated method stub
long n = 600851475143L;
System.out.println("The largest prime factor of the number '600851475143' is "+largest(n));
} public static boolean isPrime(long n){
if(n<4)
return n>1;
if(n%2==0 || n%3==0)
return false;
for(long i=5; i*i<n; i+=6)
if(n%i==0 || n%(i+2)==0)
return false;
return true;
} public static long largest(long n){
if(isPrime(n))
return n;
else{
if(n%2==0)
return largest(n/2);
if(n%3==0)
return largest(n/3);
for(long i=5; i*i<n; i+=6){
if(n%i==0)
return largest(n/i);
if(n%(i+2)==0)
return largest(n/(i+2));
}
} return 1;
} }

way2

注:利用分解质因数的方法,从小向大用质数整除(如果此质数恰好是n的因数的话)n,即不断的减小n的规模,最后即可求的最大质因数。

法二,采用了递归的方法易于理解,但是内存消耗较大;建议用法一。

The largest prime factor(最大质因数)的更多相关文章

  1. R语言学习——欧拉计划(3)Largest prime factor 求最大质因数

    The prime factors of 13195 are 5, 7, 13 and 29. What is the largest prime factor of the number 60085 ...

  2. 【沙茶了+筛选保存最大质因数】【HDU2136】Largest prime factor

    Largest prime factor Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Oth ...

  3. Largest prime factor

    problem 3:Largest prime factor 题意:求600851475143的最大的质因数 代码如下: #ifndef PRO3_H_INCLUDED #define PRO3_H_ ...

  4. [暑假集训--数论]hdu2136 Largest prime factor

    Everybody knows any number can be combined by the prime number. Now, your task is telling me what po ...

  5. HDOJ(HDU) 2136 Largest prime factor(素数筛选)

    Problem Description Everybody knows any number can be combined by the prime number. Now, your task i ...

  6. (Problem 3)Largest prime factor

    The prime factors of 13195 are 5, 7, 13 and 29. What is the largest prime factor of the number 60085 ...

  7. 2136 Largest prime factor(打表)

    Problem Description Everybody knows any number can be combined by the prime number.Now, your task is ...

  8. Problem 3: Largest prime factor

    The prime factors of 13195 are 5, 7, 13 and 29. What is the largest prime factor of the number 60085 ...

  9. 【ACM】Largest prime factor

    /*打表把素数能组合的数先设置成相应的位数*/ /* if n equals two and n is No.1 position of prime factors  so four position ...

随机推荐

  1. Hibernate的集合映射(Set、List、Array、Map、Bag)

    POJOs如下: Customer类------>customer表   Order类对应---------->orders表  customer(1)<-------------- ...

  2. PowerDesigner跟表的字段加注释

    选择那个表 右键- >Properties- >Columns- >Customize Columns and Filter(或直接用快捷键Ctrl+U)- >Comment( ...

  3. [翻译] GVUserDefaults

    GVUserDefaults Tired of writing all that code to get and set defaults in NSUserDefaults? Want to hav ...

  4. android 嵌套 apk 从一个apk启动另外一个apk

    a.apk-主应用  b.apk-被启动应用 主要思想:把b.apk放到assets目录下,由于有大小限制(1M),所以改名成b.mp3(因为mp3,jpg,png,mp4等不会检查,不会限制大小), ...

  5. ACM 关于数据输入加速

    转载请注明出处:http://blog.csdn.net/a1dark 分析:我们都知道运行时间对我们来说很重要.有时候不惜用大量的内存去换取一点时间.有些人可能都比较关注这个问题.首先时间上:cin ...

  6. myecipse的debug调试操作方法

    在myecipse如果想要查询某个变量的值,或者跟踪程序的执行流程,可以如下操作: 首先在程序中设置好断点(断点的设置方法,就是在想要设置的地方的行首双击,当一个蓝色的圆形实心图标显示出来,就证明你设 ...

  7. DS_Store

    .DS_Store (英文全称 Desktop Services Store)[1] 是一种由苹果公司的Mac OS X操作系统所创造的隐藏文件,目的在于存贮文件夹的自定义属性,例如文件们的图标位置或 ...

  8. 用maven打包项目成war文件

    打开pom.xml,右键选择Run As -> Maven package就可以自动打包成war文件了.

  9. android下4G上网卡

    架构: APP Call Trachker/SMS Dispatch/Service Tracker/Data Tracker ------------------------------------ ...

  10. webrtc学习———记录一

    最近导师让研究一下webrtc,希望将来用到我们的ICT2系统中. 但是从来没有过做web的基础,无论前端还是后端,html.js全都从头学起.html还好说,没有太过复杂的东西. js就有点难度了, ...