2014-10-13 1 views
0

안녕 내가 Clojure의에서 프로그래밍하고 있고 모듈로 역의 문제가 언어와 아무 상관이있다하더라도 나는이 코드에 붙어 줄 것 같습니다 나 바로 작은 소수에 대한 대답하지만 난 더 큰 소수에 문제가 그것을 사용하고 때처럼 결과보다 다른 답변을 얻고있다 :Clojure의 내 모듈로 역은 오답

(= 2 (mod (* 4 (EulerDiv 2 (- 3 2))) 3)) 

이 인쇄 진정한

(def ToMod (+ 10e8 7)) 
(= 1 (int (mod (* 2 (EulerDiv 2 (- ToMod 2))) ToMod))) 

이것은 false를 인쇄합니다.

또한 클로저에는 remmod이 있습니다. mod는 출력을 양수로 만들어서 계산 사이에 사용할 수 없습니다.

이것은 프로그래밍 경연 대회입니다. 그러나 이것은 솔루션의 일부이며이 모듈러 인버스의 정보는 문제 페이지에서도 제공됩니다.

문제는 프로그래밍 계산기 문법의 당신은 정수 연산에서 벗어나고있다 4/-2/(2 + 8)

+0

내 프로그램은'/'가있을 때마다 잘못된 대답을합니다. 이것은 내가 modulo inverse를 사용하는 곳이다. –

답변

2

같은 evpressions을 평가하기위한 것입니다.

  • 감안할 때 정수의 / 기능은 유리수를 생성 할 수 있습니다 : (/ 1 2)1/2하지 0입니다.
  • 1e9은 , double, 정수가 아닙니다.

적절한 대체품이 있습니다. 정수 나눗셈 함수의 경우 산술 섹션 here을 찾고 의 경우 섹션에서 숫자를 정수로 변환하는 섹션을 찾습니다.

모두 최고!