summaryrefslogtreecommitdiffstats
path: root/contrib/bc/Examples/primes.b
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/bc/Examples/primes.b')
-rw-r--r--contrib/bc/Examples/primes.b32
1 files changed, 32 insertions, 0 deletions
diff --git a/contrib/bc/Examples/primes.b b/contrib/bc/Examples/primes.b
new file mode 100644
index 0000000..2b52ca7
--- /dev/null
+++ b/contrib/bc/Examples/primes.b
@@ -0,0 +1,32 @@
+
+/* An example that finds all primes between 2 and limit. */
+
+define primes (limit) {
+ auto num, p, root, i
+
+ prime[1] = 2;
+ prime[2] = 3;
+ num = 2;
+ if (limit >= 2) print "prime 1 = 2\n"
+ if (limit >= 3) print "prime 2 = 3\n";
+ scale = 0;
+
+ for ( p=5; p <= limit; p += 2) {
+ root = sqrt(p);
+ isprime = 1;
+ for ( i = 1; i < num && prime[i] <= root; i++ ) {
+ if ( p % prime[i] == 0 ) {
+ isprime = 0;
+ break;
+ }
+ }
+ if (isprime) {
+ num += 1;
+ prime [num] = p;
+ print "prime ", num, " = ", p, "\n"
+ }
+ }
+}
+
+
+print "\ntyping 'primes (10)' will print all primes less than 10.\n"
OpenPOWER on IntegriCloud