2017-09-14 26 views
0

#lang 라켓에 양수 정수의 제수를 결정하는 함수를 작성해야합니다. (예 : 6 4 개 제수 갖는다 -1,2,3,6-)제수의 발견

를 지금까지 I을 가지고 :

(AB 분할 (정의) (경우 (= 0 (모듈 AB)) #T # F))

I는 함수 (물품이 헬퍼 기능을 사용해야 제수-개까지 그 약수의 개수를 계산하고, n은 1과 K 사이 갖는다 (그래서 N 의 약수의 개수를 계산하고 있음) NK 값 k까지).

+2

if는 중복됨을 유의해야합니다. 함수의 몸체는'(= 0 (modulo a b))'일 필요가 있습니다. 또한, 당신의 질문은 무엇입니까? 루프를 사용하는 방법을 알고 있습니까? – Carcigenicate

+0

제 수업에서는 숫자가 얼마나 많은 약수를 결정하는 라켓에 함수를 작성해야합니다. (6은 4, 1, 2, 3, 4를 가짐) (20은 6, 1, 2, 4, 5, 10, 20을가집니다. 이것을 할 수있는 함수를 어떻게 만들 수 있습니까? – Anthony

+0

예, 알겠습니다. 내가 여기서 구체적으로 묻는 게 뭐야? 귀하의 질문이 너무 광범위합니다. 정확하게 당신에게 도움이 필요한 것은 무엇입니까? – Carcigenicate

답변

1

이는 쉬운 이미 divides 기능이 주어진 특히 for/fold에서하는 for 루프 1 이루어집니다.

(define (divisors num) 
    (for/fold ([acc 0] 
      [n (in-range num)]) 
    (if (divides n num) <acc+1> <acc>))) 

기본적으로 목록을 반복하고 누적기를 유지하며 숫자가 나눌 수있을 때마다 누적기를 증가시킵니다. 위의 코드에서 <acc+1><acc>의 표현식을 채울 수 있는지 확인하십시오.

1 또한 목록 lengthfilter이 작업을 수행 할 수있다. 방법을 알아낼 수 있는지 확인하십시오.