Am doua programe (1 si 2) care determina daca un numar N e prim. Primul functioneaza, al doilea scrie "DA" chiar daca N e par. Singura diferenta, dupa cum puteti observa, e ca al doilea are initializat OK-ul in momentul in care e declarat. Eu nu prea pot sa-mi dau seama de ce nu este modificata pe parcurs, totusi
Ma puteti ajuta? Multumesc!
#include <stdio.h>
#include <stdbool.h>
int main(void) {
unsigned long long n, i;
bool ok;
(void) scanf("%llu", &n);
if(n % 2) {
ok = 1;
for(i = 3; i * i <= n && ok; i += 2) if(n % i == 0) ok = 0;
} else ok = (n == 2);
if(ok) printf("DA\n");
else printf("NU\n");
return 0;
}
#include <stdio.h>
#include <stdbool.h>
int main(void) {
unsigned long long n, i;
bool ok = 1;
(void) scanf("%llu", &n);
if(n % 2)
for(i = 3; i * i <= n && ok; i += 2) if(n % i == 0) ok = 0;
else ok = (n == 2);
if(ok) printf("DA\n");
else printf("NU\n");
return 0;
}