Dzień dobry,
starałem się napisać kod, który wpierw pobiera ilość prób, następnie pobiera przedział liczb, a z niego sprawdza, które liczby są liczbami pierwszymi. Program nawet działał... ale przestał jak wprowadziłem dodatkowy warunek p==1.. i nie wiem dlaczego, ale nawet gdy teraz wywalę ten warunek spod ifa - program nadal nie chce działać.. Pewnie jakiś mały, głupi błąd, ale już 30 minut szukam i nie widzę co może być źle.. Będę wdzięczny za pomoc
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int prime(int p) {
int j = 2;
int r = sqrt(p);
while (j <= r) if (!(p%j++) || p == 1) return 0;
return 1;
}
int main() {
int n, m, p, t;
scanf("%d", &t);
for (int i = 0; i<t;++i)
{
scanf("%d %d", &m, &n);
for (p = m; p <= n; ++p)
{
if (prime(p)) printf("%d ", p);
}
}
return 0;
}
#EDIT
A i jeszcze jedno pytanie - czemu nie mogę zrobić "while (j <= sqrt(p))"? Program wtedy też nie chciał działać jak należy.