ML에서 숫자의 주요 제수
-
22-08-2019 - |
문제
ML에서는 숫자의 프라임 디바이저를 얻고 싶습니다. 어떻게 해야하는지, 저는 초보자입니다.
해결책
간단한 시험 부서를 사용하여 시작합니다 p=2
반복적으로 나눕니다 n
~에 의해 p
, 증분 p
그대로.
open LargeInt (* if you want to work with huge numbers like 5000000000 *)
infix 7 quot rem
val prime_factors =
let fun trial_division p n =
if p > n then nil else
if n rem p = 0
then p :: trial_division p (n quot p)
else trial_division (p + 1) n
in trial_division 2 end
제휴하지 않습니다 StackOverflow