/* alkuluk2.c */ #include /****************************************************************************/ int pienin_jakaja(int luku) /* Palautetaan luvun pienin jakaja (alkuluvulle 1). Algoritmi: Negatiivisesta luvusta otetaan itseisarvo. 2:lla jako k„sitell„„n erikoistapauksena. Kokeillaan jokaista jakajaa 3,5,7 jne, kunnes jako menee tasan tai jakaja on liian iso ollakseen luvun jakaja. */ { int jakaja=3; if ( luku < 0 ) luku = -luku; if ( luku == 2 ) return 1; if ( (luku % 2) == 0 ) return 2; while ( jakaja < luku /2 ) { if ( (luku % jakaja) == 0 ) return jakaja; jakaja += 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; }