Intervalle, entiers et divisibilité en langage c

Sunshine9 Messages postés 7 Date d'inscription   Statut Membre Dernière intervention   -  
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

J'ai reçu une consigne et je dois faire un programme qui affiche tous les entiers de
l'intervalle [145,256] qui ne sont divisibles ni par 2, ni par 3, ni par 5 (un par ligne) et il doit indiquer le nombre d'entiers affichés.

Voici le programme que j'ai fais, mais il n'affiche que les chiffres de 145 à 256, je n'ai pas encore essayer d'indiquer le nombre d'entiers affichés :

#include <stdio.h>

int main(){

int entier=145, divisible2, divisible3, divisible5;

divisible2 = entier/2;
divisible3 = entier/3;
divisible5 = entier/5;

while ((entier >= 145) && (entier <= 256))
{
if ((entier != divisible2) && (entier != divisible3) && (entier != divisible5))
{
printf(" %d \n", entier);
}
entier = entier + 1;
}

return 0;}



A voir également:

1 réponse

fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
L'algorithme est faux...
divisible2 = entier/2;
divisible3 = entier/3;
divisible5 = entier/5;

Cela va calculer divisible2, divisible3 et divisible5 une fois puisqu'ils sont en dehors de la boucle while. Il faut réactualiser le calcul pour chaque nouvel variable entier. Mais tu n'en as pas besoin de ces variables.

if (entier != divisible2)
Cela compare entier entier avec divisible2. Rien à voir avec ce que tu souhaites faire (si entier est divisible par 2). Un nombre est x si le reste de la division est nulle. Donc : if(entier%2 != 0) signfie si entier n'est pas divisible par 2. A toi de jouer avec le reste.

Pour le nombre de variables affichés, un simple compteur fera l'affaire.

Cdlt,
2