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. linux-centos挂载新硬盘操作

    类似的文章网上已经有很多,这里是记录重要操作的命令,精简流程 精简后的命令: fdisk -ldf -hfdisk /dev/vdbfdisk -l /dev/vdbmkfs -t ext4 /dev ...

  2. ios 码云的使用总结

    今天将项目丢到码云上进行管理,遇到一些比较蛋疼的地方,做个记录,以后方便查询. 码云其实和gitHub差不多,只是在码云上做公司项目的时候设置为私有项目是免费的,貌似在gitHub上是要收费的.本文是 ...

  3. 关于Struts框架简介

    一,什么是框架? 所谓框架就是提供了一组统一的接口和编程方式的可以重用组件,同时我们可以在框架中扩充我们自己的特定逻辑. 二,MVC设计模式 将应用程序分为3个部分:模型 Model,视图View,控 ...

  4. [D3] 3. Scaling Basics

    d3.scale.linear() <!DOCTYPE html> <html> <head lang="en"> <meta chars ...

  5. JSPatch 成长之路

    在这次 GMTC 大会上,我见到了 JSPatch 的作者 bang.在这之前我就和他在网上认识并聊过很多次,bang 也在这个公众号上投稿发表了多篇关于 JSPatch 的文章,包括:JSPatch ...

  6. WTL 自定义 Button类-自绘

    WTL 自绘Button类,支持按钮三种形态,正常模式,hover模式,鼠标按下模式,支持png图片.使用方法很简单: MyButton* pButton = new MyButton;   pBut ...

  7. IIS Shared Configuration

    Introduction The Internet changes the ways in which companies handle their day-to-day business and h ...

  8. Mybaitis配置总结

    在mybatis-config.xml中配置分页插件,插件配置必须放在mapper前面 <plugins> <plugin interceptor="com.rrtong. ...

  9. CS=0xFFFF IP=0x0000与CS=F000 IP=FFF0

    计算机自动上电后,有些书上说CS=0xFFFF IP=0x0000,例如linux内核设计的艺术(第三版).也有一些书说CS=F000 IP=FFF0,例如赵炯的linux内核完全注释. 其实并不是说 ...

  10. (转)Spring 读书笔记-----使用Spring容器(一)

    Spring有两个核心接口:BeanFactory和ApplicationContext,其中ApplicationContext是BeanFactory的子接口.他们都可代表Spring容器,Spr ...