"but I just thought of a better way to calculate primes"
Did you actually "just think that up" cause it looks quite
a bit like one that abigail wrote:
perl -wle 'print "Prime" if (1 x shift) !~ /^1?$|^(11+?)\1+$/' [number
+]
-Blake
| [reply] [d/l] |
The regular expression match tries to break the string "111.." (a string of 1's as long as your input number) into some number of equal-length pieces of length two or more. It uses non-greedy matching, so it starts with the smallest possible and works up.. "11","111","1111" and so on. This is the same order of efficiency as the OP's prime test loop (one at a time), but it uses the regular expression engine.
| [reply] |
my apologies to Blake, no I didn't 'just think that up', it actually is abigails code with a slight modication.
| [reply] |
Whether or not 1 is prime is a question of definitions.
While I admit that it makes more sense to me to say that
1 is not a prime, there is certainly not universal agreement
on it. In particular (as I discovered when I took some
advanced number theory courses) a number of the people who
undertook to compute long lists of primes started their
lists with 1. After a while you learn not to be too
dogmatic about it. (Though I have to say that there is
far more agreement that 1 is not prime than there is on,
say, whether 0 is a natural number.)
| [reply] |
"Whether or not 1 is prime is a question of definitions."
Indeed. It is not prime by definition.
This is a useful definition since it allows integers to have a unique prime factorization.
(Less controversially, 0 is not prime, although it is also listed by the program which prompted this comment)
| [reply] |