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 600851475143 ?

翻译过后如下:

找出一个合数的最大质数因子

13195的质数因子有5,7,13和29.

600851475143的最大质数因子是多少?

做出答案以后的题解:

  • 对于给定的n, 使factor = 2, 3, 4, 5, 6...,
  • 对于每个factor, 当factor能被n完全整除时, 就到下一个factor.
  • 可以预见, 所有被整除的factor都是质因数,
  • 当所有小的因数都被整除时, n将会变为1
  • 如n为20, factor为2时, 20 % 2 = 0, n = n / 2, n变为10,
  • return factor为10,
  • 10 % 2 = 0, n = n / 2, n变为5, (整除时将某一个因数整除完)
  • 然后下一个factor3, 4, 5, n % 5 = 0,
  • return factor = 5, n变为1, 跳出循环
    R语言学习——欧拉计划(3)Largest prime factor 求最大质因数
f<-function(){
s<-600851475143
k<-sqrt(s)
k<-as.integer(k)
mm<-0
for(i in 2:k)
{
while(s%%i==0)
{
s<-(s%/%i)
if(mm<i)
{
(mm<-i)
}
}
}
print(mm) }
Answer:
6857
上一篇:linux中top命令的用法


下一篇:SharePoint表单和工作流 - Nintex篇(三)