Hi.<br>
<br>
I need some help here. I&#39;m new to Scheme and now I&#39;m supposed to build a RSA encryption algorithm.<br><br>I have some guidelines to build it and I&#39;ll post them now.<br><br>1. Write a procedure &quot;prime?&quot; that given a natural (positive) number returns true if that number is a prime number or false otherwise.
<br><br>2. Write a procedure &quot;calc-e&quot; that receives an argument n and returns a natural number, between 1 and n, that is a coprime of n.<br><br>3. Write a procedure &quot;calc-d&quot; that given 2 arguments, e and n, returns a natural number d, such that there is a number k to which the following expression is true:
<br><br>d . e = 1 + k . n<br><br>4. Write a procedure &quot;RSA&quot; that receives 2 natural (positive) numbers, k and l, and generates a public key and it&#39;s respective private key that uses de k-th and the l-th prime numbers as the initial prime numbers. The keys should be displayed in the screen in an adequate form
<br><br>5. Write a procedure &quot;encoder&quot; that receives 2 natural numbers that correspond to the public and private key and returns a procedure that the argument is de encoder or decoder that uses the received key.
<br><br>I&#39;m not able to use every primitive procedure in Scheme. I&#39;m only able to use these procedures:<br><br>Numerical operations;<br>Predicates;<br>Logical operations;<br>abs, cond, else, if, lambda, let, let*;
<br>begin, display, newline;<br><br>I guess that&#39;s all of them...<br><br>So far I have this:<br><br>;Begin prime?<br><br>(define (prime? k)<br>&nbsp; (if (&lt;= k 1)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &quot;Error: Insert number over 1.&quot;<br>&nbsp;&nbsp; (= k (smallest-divisor k))))
<br><br>(define (smallest-divisor k)<br>&nbsp; (divisor k 2))<br><br>(define (divisor k test-divisor)<br>&nbsp; (cond ((&lt; k (sqrt test-divisor)) k)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (( divisor? test-divisor k) test-divisor)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (else (divisor k (+ test-divisor 1)))))
<br><br>(define (divisor? a b)<br>&nbsp; (= (remainder b a) 0))<br><br>;End prime?<br><br>;Begin calc-e<br><br>(define (a n)<br>&nbsp; (gcd (- n 1) n))<br><br>(define (calc-e n)<br>&nbsp; (if (= (a n) 1)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (- n 1)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (a ( - n 1))))
<br><br>;End calc-e<br><br>If there&#39;s anyone that could help me out here I would appreciate it.<br><br>Regards.<br>