Ian_Li
发表于 2023-8-7 19:07:42
欧拉计划 发表于 2023-5-29 02:41
出师不捷啊,第三题就出纰漏了!
确实是漏了大的那个因数没有检测是否为质数,刚开始有鱼油指出时我竟 ...
加上检查大的因子是不是也不对呀?
如果n有两个大于Math.sqrt(n)的质数因子a,b;并且a<b
循环的过程中,会先t = b;
再t = a;
最后返回a
Ian_Li
发表于 2023-8-7 19:09:31
还有最后的代码写的,for循环里的i也没用到呀.
import math
n = 600851475143
k = 2
for i in range(0, math.isqrt(n)):
if k >= n:
break
elif n % k == 0:
n = n // k
else:
k = k + 1
print(n)
Ian_Li
发表于 2023-8-7 19:12:16
public static void main(String[] args) {
long res = getSum(600851475143l);
System.out.println(res);
}
private static long getSum(long n) {
long k = 2;
while (k < n) {
if (n % k == 0) {
n = n / k;
} else {
k++;
}
}
return n;
}
xw20010211
发表于 2023-8-18 14:33:47
looklook
nkysp
发表于 2023-8-20 11:56:14
好
风眠
发表于 2023-8-28 12:51:35
速度很慢,求更优解
def chick(x):
for i in range(2,x):
if not x%i:
return False
else:
return True
a=600851475143
for i in range(a//2,0,-1):
if not a%i:
if chick(i):
print(i)
break
name_Liu
发表于 2023-9-21 14:33:16
1
依瓦尼格
发表于 2023-9-25 00:12:43
学习中{:5_110:}
zhangjinxuan
发表于 2023-10-6 08:55:57
欧拉计划 发表于 2023-5-31 01:27
刺激啊,复杂度已经降到 O(√n)
Pollard-Rho 呢{:10_277:}{:10_256:}
左右丶
发表于 2023-10-7 21:55:22
讲得很详细,学到了{:10_282:}
chenxyong
发表于 2023-10-11 15:31:29
打卡打卡
AtoposK
发表于 2023-10-15 01:45:36
学会了
AtoposK
发表于 2023-10-15 01:47:43
讲得很好
141319
发表于 2023-10-17 19:38:08
1
141319
发表于 2023-10-17 19:38:29
1
这是豆豆啊
发表于 2023-11-3 16:28:39
def largest_prime_factor(n):
i = 2
while i * i <= n:
if n % i:
i += 1
else:
n //= i
return n
number = 600851475143
result = largest_prime_factor(number)
print(result)
居仔爸爸
发表于 2023-11-19 22:09:42
小粪坨屎团团小兔球球
lU553178681
发表于 2023-11-24 14:43:59
学些学习!
sharp46
发表于 2023-11-25 22:09:31
学习学习
奋斗中的鱼
发表于 2023-12-23 17:10:31
{:10_254:}