2017-09-14 3 views
0

#langラケットに正の整数の除数の量を決める関数を書く必要があります。 (例:6 4つの除数を有し; 1,2,3,6-)除数の量を求める

これまでのところ私は:

(定義(ABを分割する)((= 0(モジュロAB)であれば)#tを#私はそれがN の除数の数を計算するように1及びk(間除数の数を計算するn個有していること(除数-点で最大NK)関数を記述するために、このヘルパー関数を使用する必要がF))

値kまで)。

+2

ifは冗長であることに注意してください。関数の本体は '(= 0(モジュロa 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ループと行われます。

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

基本的には、リストをループし、アキュムレータを保持しています。また、数値が割り切れる場合は、アキュムレータを増分します。上のコードで<acc+1><acc>の式を記入できるかどうかを確認してください。

また、リストlengthfilterでこれを行うことができます。あなたがどのように把握できるかどうかを見てください。

関連する問題