[racket] How to verify prime numbers.
On Jul 14, 2011, at 1:56 AM, 飞刀 wrote:
> Hello everyone,
>
> I want a program to verify prime numbers which can be runned in mzscheme. The following is C source. I don't konwn how to convert it to lisp.
Well, I wouldn't start from that C code, as the idiomatic way to solve a problem in C is seldom the same as the idiomatic way to solve it in Scheme. I would start, instead, from the mathematical definition of primeness.
How are the idioms different? Well, a Scheme programmer probably wouldn't say "I want a fixed-size table of the integers from 1 to 1000000, telling whether each one is or isn't prime;" the Scheme programmer would more likely say "I want a function which, given a positive integer N, gives me a list of all the primes less than N." And the Scheme programmer would almost certainly do the job with recursion and/or higher order functions rather than loops and assignment statements.
Once you've done this, you should find that your Scheme version is much more mathematically useful than your C version, because the Scheme version will work even if N happens to be larger than 2^31.
Stephen Bloch
sbloch at adelphi.edu