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 件のコメント:
コメントを投稿