33 lines
787 B
C
33 lines
787 B
C
#include <stdio.h>
|
|
|
|
int est_premier(int n) {
|
|
if (n < 2) return 0;
|
|
for (int d = 2; d < n; d++)
|
|
if (n % d == 0) return 0;
|
|
return 1;
|
|
}
|
|
int somme_chiffres(int n) {
|
|
int s = 0;
|
|
for (; n > 0; n /= 10) s += n % 10;
|
|
return s;
|
|
}
|
|
int compter_premiers(int limite) {
|
|
int total = 0;
|
|
for (int i = 0; i < limite; i++)
|
|
if (est_premier(i)) total++;
|
|
return total;
|
|
}
|
|
int premiers_chanceux(int limite) {
|
|
int total = 0;
|
|
for (int i = 0; i < limite; i++)
|
|
if (est_premier(somme_chiffres(i)) && est_premier(i))
|
|
total++;
|
|
return total;
|
|
}
|
|
|
|
int main(void) {
|
|
printf("Nombres premiers < 60000 : %d\n", compter_premiers(60000));
|
|
printf("Premiers « chanceux » < 60000 : %d\n", premiers_chanceux(60000));
|
|
return 0;
|
|
}
|