Comment trouver les diviseurs d'un nombre a partir de tableaux?
Fermé
yasminaaaaa
Messages postés
1
Date d'inscription
dimanche 20 janvier 2013
Statut
Membre
Dernière intervention
20 janvier 2013
-
20 janv. 2013 à 10:57
mamiemando Messages postés 33410 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 2 décembre 2024 - 24 janv. 2013 à 22:22
mamiemando Messages postés 33410 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 2 décembre 2024 - 24 janv. 2013 à 22:22
A voir également:
- Comment trouver les diviseurs d'un nombre a partir de tableaux?
- Creer un groupe whatsapp a partir d'un autre groupe - Guide
- Trouver adresse mac - Guide
- Comment trouver le mot de passe wifi sur son téléphone - Guide
- Comment faire un tableau - Guide
- Trouver une adresse avec un nom de famille gratuit ✓ - Forum Mobile
1 réponse
mamiemando
Messages postés
33410
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
2 décembre 2024
7 808
24 janv. 2013 à 22:22
24 janv. 2013 à 22:22
Quelques remarques préalables :
- Déclare tes variables dans ton main, pas à l'extérieur. Sinon ce sont des variables globales et de manière générale, on essaye d'éviter les variables globales dans un programme. Par ailleurs ta fonction main retourne un int (0 par convention quand tout va bien), donc il faut rajouter le return qui correspond.
Exemple :
- Par soucis de lisibilité, on passe à la ligne après une accolade ouvrante et une accolade fermante. Certains passent même une ligne avant d'ouvrir une accolade. Ça permet de voir plus facilement où les blocs commencent et s'arrête. À partir du moment où tu ouvres une accolades, tu es sensé ajouter une tabulation pour qu'on voit qu'on est dans un bloc { ... }
Exemple :
- Pour la saisie d'un entier > 1 je répéterais la valeur de N tant que N n'est pas > 1 :
Pour la dernière étape, le plus simple est à mon avis d'écrire une fonction récursive qui étant donnés en paramètre
- une décomposition en nombre premiers
- un rang i (qui signifie que tous les facteurs 0 à i -1 ont été évalués)
- une valeur f engendrée par les facteurs de rang 0 à i - 1
...
fait le traitement suivant : pour chaque valeur de p allant de 0 à puissance[i] - 1
si i < n (avec n le nombre de facteurs) appeler récursivement cette fonction
- la même décomposition
- i+1
- f * facteur[i] ^ p
si i == n affiche la valeur de f.
Bonne chance
- Déclare tes variables dans ton main, pas à l'extérieur. Sinon ce sont des variables globales et de manière générale, on essaye d'éviter les variables globales dans un programme. Par ailleurs ta fonction main retourne un int (0 par convention quand tout va bien), donc il faut rajouter le return qui correspond.
Exemple :
int main() { int x, y; return 0; }
- Par soucis de lisibilité, on passe à la ligne après une accolade ouvrante et une accolade fermante. Certains passent même une ligne avant d'ouvrir une accolade. Ça permet de voir plus facilement où les blocs commencent et s'arrête. À partir du moment où tu ouvres une accolades, tu es sensé ajouter une tabulation pour qu'on voit qu'on est dans un bloc { ... }
Exemple :
for(i = 0; i < 10; i++) { for(j = 0; j < 10; j++) { printf("%d * %d = %d\n", i , j, i * j); } }
- Pour la saisie d'un entier > 1 je répéterais la valeur de N tant que N n'est pas > 1 :
int n; do { printf("Veuillez saisir une valeur de N > 1\n"); scanf("%d", &n); } while (n <= 0); // À partir de là, je sais que j'ai n > 1
Pour la dernière étape, le plus simple est à mon avis d'écrire une fonction récursive qui étant donnés en paramètre
- une décomposition en nombre premiers
- un rang i (qui signifie que tous les facteurs 0 à i -1 ont été évalués)
- une valeur f engendrée par les facteurs de rang 0 à i - 1
...
fait le traitement suivant : pour chaque valeur de p allant de 0 à puissance[i] - 1
si i < n (avec n le nombre de facteurs) appeler récursivement cette fonction
- la même décomposition
- i+1
- f * facteur[i] ^ p
si i == n affiche la valeur de f.
Bonne chance