Primes by Trial Division - BDS C

30 January 2018

No unsigned types or sizeof; otherwise equivalent to C/80.

/* n primes */

#include "bdscio.h"
#define CHARV 48
#define sizeof(int) 2

int* calloc(n, siz)
int n;
int siz;
{
	int i, *p;

	p=alloc(n*siz);
	for(i=0; i<n*siz; i++) {
		p[i]=0;
	}

	return(p);
}

unsigned int patoi(str)
char* str;
{
	int i
	int result;

	i=0;
	result=0;
	while(str[i] != 0) {
		result = ((result * 10) + (str[i] - CHARV));
		i++;
	}

	return(result);
}

int isprime(n, primes)
int n;
int* primes;
{
	int i;

	i=0;
	while(primes[i] > 0) {
		if(n % primes[i] == 0) {
			return(0);
		}
		i++;
	}

	return(1);
}

int main(argc, argv)
int argc;
char** argv;
{
	int f, n, p, *primes;

	f=0;
	p=2;
	n=patoi(argv[1]);
	primes=calloc(n,sizeof(int));
	while(f < n) {
		if(isprime(p, primes)) {
			primes[f] = p;
			printf("%d\n", p);
			f++;
		}
		p++;
	}

	return(0);
}

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026

Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Primes Benchmark Source

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

Primes Benchmark Results

Other C Variants

BDS C

C

C/80

Faster Than Light Speed C