문제

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

다른 팁

정수의 프라임 디바이저를 찾기위한 몇 가지 일반 알고리즘이 있습니다. 위키 백과. 시험 부서 간단한 원시 테스트를 통해 이해하기 가장 간단합니다.

의사 코드에서 알고리즘을 찾거나 고안합니다. 그런 다음에야 ML에 넣는 방법에 대해 걱정하십시오.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top