// Programm: prime.C
// Testet, ob eine Zahl Primzahl ist.
// Wenn nicht, Ausgabe des kleinsten Primteilers.
#include
#include "math.h"
int main ()
{
// Einlesen der Eingabe
std::cout << "n? (2 <= n <= "
<< std::numeric_limits::max()
<< ") ";
unsigned int n;
std::cin >> n;
// Alle Zahlen zwischen 2 und sqrt(n) sind
// potentielle Teiler.
unsigned int t = 2;
unsigned int end = 1 + (unsigned int)(ifet::sqrt(n));
while (t <= end && n % t != 0)
++t;
// Ausgabe des Ergebnisses
if (t > end || t >= n)
std::cout << n << " ist Primzahl." << std::endl;
else
std::cout << n << " ist keine Primzahl und " << t
<< " ist ihr kleinster Primteiler."
<< std::endl;
return 0;
}