/* File: prim.c - zu Kap. 1.5.1. Programmbeispiele
   Fkt.: Berechnung der Primzahlen im eingegebenen Intervall */
#include <stdio.h>
#include <ctype.h>
#define YES 1
#define NO  0
long int getlong();
main()  /* Primzahlen im Intervall [von, bis] */
{	long int n, von, bis;
	printf("Berechnung der Primzahlen des Zahlenintervalls\n");
	printf("\nGeben Sie die untere Intervallgrenze ein:");
	von = getlong();
	printf("\nGeben Sie die obere Intervallgrenze ein:");
	bis = getlong();
	n = von;
	while(n <= bis) {
		if (prim(n))
			printf("    %ld\n", n);
		n = n + 1;
}	}
int prim(i)  /* liefert YES, falls i eine Primzahl ist */
	long int i;
{	long int j;
	if (i < 2) return (NO);
	j = 2;
	while (j < i) {
		if (i % j == 0)
			return (NO);
		else if (j * j > i)
			return (YES);
		else j = j + 1;
	}
	return (YES);
}
long int getlong () /* Ziffernfolge lesen und konvertieren in long */
{	long int i;
	int c;
	i = 0;
	c = getchar();
	while (isdigit (c)) {
		i = 10 * i + c - '0';
		c = getchar();
	}
	return(i);
}
