[Renommé] Nombres premiers
Fermé
blackdiamont
Messages postés
5
Date d'inscription
jeudi 28 mai 2015
Statut
Membre
Dernière intervention
20 octobre 2015
-
Modifié par Whismeril le 29/05/2015 à 21:10
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 31 mai 2015 à 20:01
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 31 mai 2015 à 20:01
A voir également:
- [Renommé] Nombres premiers
- Code binaire des nombres - Guide
- Nombres faciles - Télécharger - Outils professionnels
- Citez un des logiciels lui permettant de faire des calculs sur des tableaux de nombres (tableur) - Forum Excel
- Barbara veut calculer automatiquement son budget dans un tableau. citez un des logiciels lui permettant de faire des calculs sur des tableaux de nombres (tableur). - Forum Musique / Radio / Clip
- Formule excel écart entre deux nombres - Forum Excel
2 réponses
NHenry
Messages postés
15177
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
2 janvier 2025
350
29 mai 2015 à 21:28
29 mai 2015 à 21:28
Quel est le message d'erreur ?
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
Modifié par fiddy le 31/05/2015 à 20:04
Modifié par fiddy le 31/05/2015 à 20:04
Bonjour,
int _tmain(int argc, _TCHAR* argv[])
Le prototype standard est : int main(void) ou int main(int argc, char *argv[]).
Attention le type long long ne marche qu'en C99. Vérifie bien que c'est le cas de ton compilateur. Sinon, il faudra mettre des long en lieu et place. Si tout est ok, tu peux même utiliser unsigned long long pour augmenter le nombre maximum.
printf("nbrePremier maximal %i ", nbre);
Remarque générale : %i n'est pas correct pour les long long. Il faut plutôt utiliser %lld (L minuscule). Vérifie pour les autres printf().
long long max = 440000000;
Remarque générale également, pour les assignations il faut apposer LL. Par exemple : 440000000LL (important pour les nombres supérieurs à INT_MAX.
Attention à ta fonction test() qui ne fonctionne pas pour le cas 2. 2 est un nombre premier. Pourtant ta fonction considèrera qu'il est non premier... Utilise un if.
Note : Fonctionnellement, ça changera rien car ta fonction primzahl() retourne 2 quand même. Il n'empêche qu'algorithmiquement, test() est fausse et ne pourra pas être ré-utilisée...
Corrige tout ça et dis-nous si cela règle ton problème. Si non, reposte ton programme avec les corrections et dis-nous précisément ce qui ne fonctionne pas.
Sinon c'est normal que ton programme ne retourne qu'un nombre puisque tu lui demandes d'afficher le nombre premier le plus grand. Si tu veux afficher tous les nombres premiers, il te suffit de mettre un printf() dans primzahl() en plus du return i;
Cdlt,
Google is your friend
int _tmain(int argc, _TCHAR* argv[])
Le prototype standard est : int main(void) ou int main(int argc, char *argv[]).
Attention le type long long ne marche qu'en C99. Vérifie bien que c'est le cas de ton compilateur. Sinon, il faudra mettre des long en lieu et place. Si tout est ok, tu peux même utiliser unsigned long long pour augmenter le nombre maximum.
printf("nbrePremier maximal %i ", nbre);
Remarque générale : %i n'est pas correct pour les long long. Il faut plutôt utiliser %lld (L minuscule). Vérifie pour les autres printf().
long long max = 440000000;
Remarque générale également, pour les assignations il faut apposer LL. Par exemple : 440000000LL (important pour les nombres supérieurs à INT_MAX.
Attention à ta fonction test() qui ne fonctionne pas pour le cas 2. 2 est un nombre premier. Pourtant ta fonction considèrera qu'il est non premier... Utilise un if.
Note : Fonctionnellement, ça changera rien car ta fonction primzahl() retourne 2 quand même. Il n'empêche qu'algorithmiquement, test() est fausse et ne pourra pas être ré-utilisée...
Corrige tout ça et dis-nous si cela règle ton problème. Si non, reposte ton programme avec les corrections et dis-nous précisément ce qui ne fonctionne pas.
Sinon c'est normal que ton programme ne retourne qu'un nombre puisque tu lui demandes d'afficher le nombre premier le plus grand. Si tu veux afficher tous les nombres premiers, il te suffit de mettre un printf() dans primzahl() en plus du return i;
Cdlt,
Google is your friend
29 mai 2015 à 22:54
29 mai 2015 à 23:13
29 mai 2015 à 23:20
long long nbrepremier( long long max)
maintenan kan je compile ca me donne le dernier nbre premier et non ce ke tous les nbres que je demande
29 mai 2015 à 23:43
(Mettre des commentaires en français, ça devrait aller)
Modifié par JwTdd le 30/05/2015 à 19:06