Hey, pisze programy z ksiazki o podzielnosci w paru mam problem:
To jedno:
Napisz program, który wypisuje wszystkie dwucyfrowe liczby pierwsze, które po przestawieniu cyfr też są pierwsze. Przykładem takiej liczby jest 37 (73 jest liczbą pierwszą).
#include <stdio.h>
int pierwsze(int n);
main()
{int i=0;
int j=0;
for (i=1;i<10;i++)
for(j=i;j<10;j++)
if(pierwsze(10*i+j) && pierwsze(10*j+i))
printf("%d, %d",10*i+j,10*j+i);
}
int pierwsze(int n)
{if (n%2==0 && n>2) return 0;
int p;
for (p=3; p*p<=n ; p+=2)
if (n%p==0) return 0;
return 1;
}
Ale nie do końca działa to dobrze. Moze ktos napisac gdzie popełniłem błąd ?
Jeszcze jeden:
Dla liczby bedacej szescianem jakiejs liczby calkowitej wypisuje TAK, w przeciwnym wypisze NIE.
#include <stdio.h>
#include <stdlib.h>
int main() {
int n,i;
printf("Podaj liczbe: ");
scanf("%d", &n);
if(n<1 || n>2000000000) {
printf("Bledna liczba\n");
}
if(n==1)
printf("Jesli 0 jest liczba naturalna = TAK jezeli 0 nie jest liczba naturalna = NIE\n");
else {
for(i=3;n%i==0;i=i*3);
if(n==(i/3))
printf("TAK\n");
else
printf("NIE\n");
}
return 0;
}