Witam
Ostatnio zajęciach dostałem zadanie o treści:
Napisz funkcje zwracajaca (przez return) liczbe:
1 - w przypadku gdy podana jako parametr funkcji liczba jest liczba pierwsza lub
0 - gdy podana liczba nie jest pierwsza.
Napisałem program , który na pierwszy rzut oka działa bez problemu ale gdy (od 2 do 15 sprawdzałem po koleji i działa) ale gdy sobie wpisałem 27 to pokazuje mi że jest liczbą pierwszą a przecież ma 3 dzielniki 1,3,27 więc nie może być liczbą pierwszą.Niestety nie mogę znaleźć przyczyny takiego działania programu.Czy ktoś
#include <stdio.h>
#include <stdlib.h>
int pierwsza(int liczba)
{
int i, w=1;
if(liczba<2) w=0;
for(i=2; i<=liczba-1; i++)
{
if(liczba%i == 0)
{
w=0;
return(0);
}
else
{
return(1);
}
}
return(w);
}
int main(void)
{
int liczba,wynik;
printf("Podaj liczbe, sprawdze czy jest liczba pierwsza: ");
scanf("%d", &liczba);
wynik=pierwsza(liczba);
if(wynik==1)
printf("Liczba %d jest pierwsza\n\n", liczba);
else
{
printf("Liczba %d nie jest pierwsza\n\n", liczba);
}
system("pause");
return(0);
}
może mi pomóc w znalezieniu problemu?.Pozdrawiam