/* alkuluku.c */ #include /****************************************************************************/ int pienin_jakaja(int luku) /* Palautetaan luvun pienin jakaja (alkuluvulle 1). Algoritmi: Negatiivisesta luvusta otetaan itseisarvo. Kokeillaan jokaista pienemp„„ jakajaa 2,3,5,7 jne, kunnes jako menee tasan tai jakaja on liian iso ollakseen luvun jakaja. */ { int jakojaannos,jakaja=2,kasvatus=1; if ( luku<0 ) luku = -luku; if ( luku==2 ) return 1; do { jakojaannos = luku % jakaja; if ( jakojaannos == 0 ) return jakaja; jakaja += kasvatus; kasvatus = 2; } while ( jakaja < luku/2 ); return 1; } /****************************************************************************/ int main(void) { int luku,jakaja; printf("Tutkin onko luku alkuluku. Anna luku >"); scanf("%d",&luku); jakaja = pienin_jakaja(luku); if ( jakaja==1 ) printf("Luku on alkuluku.\n"); else printf("Luku on jaollinen esimerkiksi luvulla %d.\n",jakaja); return 0; }