begin process at 2012 05 30 14:20:34
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Divers

 > 

Débutant(e)

 > 

programme nombres premiers


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

programme nombres premiers

mercredi 2 décembre 2009 à 19:38:59 | programme nombres premiers

I0o0I


Bonjour,

j ai une question pour un programme plutot math mais la question est pas math du tout... c est surement très facile a résoudre. En gros j ai 2 fonction qui doivent me permettre de trouver des nombres premiers.

le calcule est: si fonction02(x-2)/ fonction01(x)==0, alors fontion01(x) est un nombre premier...

le problème est le suivant... un utilisateur du programme doit pouvoir entrer un nombre n de son choix et le programme doit lui sortir tt les chiffre premier qui (corrspondent au calcule ci dessus) jusqu a n.

Donc pour ma main fonction j ai essayé de faire un boucle for du style for(i=0; i<=n; ++i) et
if fonction02(i-2)/fonction01(i)==0 output: <<fonction01(i)<<"sont des chffres premiers" mais ca marche pas... je sais pas si je doit plutot faire un tableau.... désolée si c est pas très clair, je peut poster le programme si jamais..
jeudi 3 décembre 2009 à 10:11:09 | Re : programme nombres premiers

CptPingu

Administrateur CodeS-SourceS
C'est pas super clair, mais ton raisonnement semble relativement correcte.
J'aurai effectivement fait un:

Code C/C++ :
for(int i = 0; i <= n; ++i)
{
  int a = fonction02(i - 2);
  int b = fonction02(i);
  if ((a / b) == 0)
    std::cout << b << " est un nombre premier" << std::endl;
}


Que ce sont fonction01 et fonction02 ? J'ai considéré qu'elles retournaient des entiers, mais je n'en sais rien.
jeudi 3 décembre 2009 à 10:38:47 | Re : programme nombres premiers

tpoinsot

bonjour,

ce n'est pas clair, effectivement, et je me demande ce que tu as en tête quand tu parles de tableau.

par ailleurs, je suis surpris
- par la boucle, de 0 à n inclus
- par un appel à f(i-2) mais c'est peut être légitime pour f
- par une division qui ne vérifie pas que le dénominateur est différent de 0
- par le test (a/b) == 0. En réel, pour b!=0, c'est équivalent à (a == 0). en entier, c'est ( abs(a) < abs(b) )


thip
jeudi 3 décembre 2009 à 10:45:02 | Re : programme nombres premiers

CptPingu

Administrateur CodeS-SourceS

- par la boucle, de 0 à n inclus


Ce n'est pas faux en soit.

- par un appel à f(i-2) mais c'est peut être légitime pour f


fonction01(i) et pas fonction02(i), petite inattention de ma part.

- par une division qui ne vérifie pas que le dénominateur est différent de 0


Les cas d'erreur: pour plus tard.

- par le test (a/b) == 0. En réel, pour b!=0, c'est équivalent à (a == 0). en entier, c'est ( abs(a) < abs(b) )


Je n'ai fait que recopier en code quelque chose d'énoncer très vaguement. Impossible donc de corriger quoi que ce soit avant d'avoir des précisions supplémentaires :)
jeudi 3 décembre 2009 à 12:21:35 | Re : programme nombres premiers

tpoinsot


Désolé, CptPingu, je ne voulais pas te froisser, je m'adressais plutôt à I0o0I mais j'ai omis de le préciser.

thip
jeudi 3 décembre 2009 à 12:22:48 | Re : programme nombres premiers

CptPingu

Administrateur CodeS-SourceS

Désolé, CptPingu, je ne voulais pas te froisser, je m'adressais plutôt à I0o0I mais j'ai omis de le préciser.


Je ne suis pas froissé, tes remarques sont tout à fait pertinentes !
jeudi 3 décembre 2009 à 14:45:17 | Re : programme nombres premiers

Alain Proviste

Administrateur CodeS-SourceS
s'il est froissé, il repassera !
jeudi 3 décembre 2009 à 16:39:41 | Re : programme nombres premiers

I0o0I



Excusez moi, j i trop foiré, j devais etre fatiguée...

Donc je reprend: c'est pas divisé par, c est
fonction02(x-2)%fonction01(x)==0 (la ca parait un peu plus sensé). alors voila le programme les 2 fonction marchent mais pas la main (elle compile mais elle me retourne pas du tt ce que je veux... en plus je trouve bizarre j ai du définir 2x i pour que ca compile... bon tt facon c est faux donc si vous pouviez m indiquer une petite piste... merci bcp pour votre aide en tt cas!!)



//programme lucmes.cpp

// Ce programme va nous dire si des nombres de mersenne (de la forme 2^b-1) sont premier jusqu a un certain nombre n choisi grace au fonction lucas() et mersenne(). Le calcul est: si et seulement si la valeur lucas(i-2)%mersenne(i)==0, alors mersenne(i) est premier.


//lucas-lehmer function
//PRE: on doit choisir une valeur pour la fonction quand c =0 car cette fonction est défini recursivement. On choisi par exemple la valeur 4.
//POST: la fonction retourne: (lucas(c-1))²-2.

#include<iostream>


unsigned int lucas(unsigned int a) {

if (a==4)

{
return 0;
}

else return (lucas(a-1)*lucas(a-1))-2;
}

//mersenne function
//PRE: pas de précondition b est un usigned int
//POST: la fonction retourne 2^b-1

unsigned int mersenne(unsigned int b){

int result= 0;
int k=1;


for (unsigned int c=0; c<b; ++c)

k*=2;

result = k -1;

return result;
}


int main()

{

std::cout<<"find the prime numbers until n=?";

unsigned int n;

std::cin>>n;


unsigned int i=6; //j ai mis ca pcq lucas() est définie quand x=4.
unsigned int a = lucas (i-2);
unsigned int b = mersenne(i);

for (unsigned int i=6;n>=i; ++i)


if (a%b==0);


std::cout<<b<< "are prime numbers\n";


return 0;

}


Voila j espère que ca va, j ai mis mille commentaires pour que ca soit plus clair... peut etre que ca fait pas très pro mais de tt facon j essaie de tromper personne ;)
a+


jeudi 3 décembre 2009 à 16:48:14 | Re : programme nombres premiers

I0o0I


j ai aussi essayé avec ton bout de code CptPingu

for(int i = 0; i <= n; ++i)
{
int a = fonction02(i - 2);
int b = fonction02(i);
if ((a / b) == 0)
std::cout << b << " est un nombre premier" << std::endl;
}

en remplacent / par %....
mais l output est aussi faux...
jeudi 3 décembre 2009 à 19:23:09 | Re : programme nombres premiers

tpoinsot

attention, ton for n'a pas d'accolades, c'est troublant (mais pourquoi pas?) , et il y a un point virgule à la fin du if (là c'est faux)

je suppose que tu veux mettre les définitions de a et b dans le for, et non pas avant;

à la 1ère itération, tu appelles lucas(4) qui vaut 0 or 0%b == 0 tout le temps.

utilise un débuger ou mets des traces car l'algoritme est bizarre

lucas(4) = 0
lucas(5) = -2 ! pas franchement un unsigned int
lucas(6) = 2

Finalement, je pense que ton algoritme est faux, tu devrais vérifier.

thip


Cette discussion est classée dans : programme, question, premiers, nombres, fonction01


Répondre à ce message

Sujets en rapport avec ce message

Question assez technique [ par CalistX ] J'aimerais construire un programme qui gére la ram.Je m'explique :ce programme tournerait en tâche de fond, il faudrait qu'il vérifie les actions fait une question toute simple.. aidez moi, stp!!! [ par xose ] Je viens d'installer le Borland C++. Une fois que le programme est compilé, la fenetre noire disparait toute suite!! Je n'arrive pas à voir jamais les Probleme sur un programme qui calcule un pgcd [ par El loco ] Voila j ai un probleme sur le programme suivant, il marche correctement avec une grande serie de nombres mais quand je tape 15 et 32 il me donne un pg QUESTION ya T IL UN AUTRE MOYEN EN RESEAU ? [ par bily ] Vegeta :-)comment faire pour envoyer un fichier par programme ??je programme en c++builder et j'utilise les socketsG 1 IDEE mais est ce la BONNE ?Li question existencielle [ par knubie ] il existe des programme comme artmoney qui permete de trouver des chaine de charactere des entier des floatant et des chaine de charactere dans la me Recommencement d'un programme [ par wins ] Bonjour,Je dois créer un programme en C++ dans lequelle nous devons posez une question à l'exécuteur du logiciel.Cette question ce lit comme suit. On nombres aléatoires en c++ [ par johanb ] bonjour a tous, voici mon problême.Dans un programme, je dois générer deux fois un nombre aléatoire entre 0 et n (appelé max dans le programme). Voici Question de faisabilité [ par talaron ] Sltj'ai un programme de traitement d'images en c++ et je vais surement devoir programmer la meme chose dans un PIC.Je voudrais savoir s'il existe un c Le port Série [ par cheMoor ] Salut tout le monde c'est un programme est super !!!Ma question sur [size=4]les événements du Port !!!![/size=4]:: Existe-t-il un événement qui se déc Question DLL [ par LordBob ] Bonjours a tous,en fait je voudrais juste savoir s'il été possible d'utiliser une DLL aussi bien avec un programme fonctionnant en mode console qu'un


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,889 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales