Scheme
(use srfi-1) (define (prime-factors n) (if (= n 1) '() (let loop ((d 2)) (if (zero? (modulo n d)) (cons d (prime-factors (/ n d))) (loop (+ d 1)))))) (define (p003) (print (apply max (prime-factors 600851475143)))) (p003)
C++
#include <cstdio>
#include <algorithm>
using namespace std;
typedef long long ll;
ll lpf(ll n)
{
if (n == 1)
return 1;
for (ll d = 2;; d++)
if (n%d==0)
return max(d, lpf(n/d));
}
int main()
{
printf("%lld\n", lpf(600851475143));
return 0;
}
0 件のコメント:
コメントを投稿