Program ma wypisywać liczbę możliwych sposobów przedstawienia wpisanej liczby, jako sumy dwóch liczb pierwszych. (p+q, gdzie p <= q)
Np. po wpisaniu 16, program powinien wypisać 2, bo 3+13=16 i 5+11=16
Gdzie jest błąd?
#include <stdio.h>
#include <math.h>
int czypierwsza(int a) {
for(int i=2; i<=sqrt(a); i++) {
if(a%i==0)
return 0;
}
return 1;
}
int main(int argc, const char * argv[]) {
int n;
scanf("%d",&n);
if((n%2==0) & (n>2)) {
int licznik=0;
for(int i=2; i<=n; i++) {
for(int j=i; j<=n; j++) {
if(i+j==n) {
if((czypierwsza(i)==1) & (czypierwsza(j)==1)) {
licznik++;
}
}
}
}
printf("%d",licznik);
}
else {
printf("NIEPOPRAWNA LICZBA");
}
return 0;
}