IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Turbo Pascal Discussion :

Nombre super-premier


Sujet :

Turbo Pascal

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2017
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2017
    Messages : 1
    Points : 2
    Points
    2
    Par défaut Nombre super-premier
    Un nombre est dit super-premier s'il vérifie la propriété suivante : n est premier en éliminant ses chiffres un à un , à partir de la droite, le résultat est toujours premier. Exemple : 593 593 premier 59 premier 5 premier. On veut chercher les nombres premier entre p et q (10 < p < q < 20000).

    Qu'est ce qui ne va pas dans mon programme ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    program exercice8;
    uses wincrt;
    var p,q:integer;
     
    procedure saisie(var p,q:integer);
    begin 
    	repeat
    	write('p:='); read(p); 
    	write('q:='); read(q); 
    	until (10 < p) and (p<q) and (q<20000);
    end;
    function premier(n:integer):boolean;
    var i :integer;test:boolean;
    begin
    	test:=true;
    	if(n=1) then test:=false
    	else begin
    	for i:= 2 to (n div 2) do 
    	if (n mod i = 0) then test:=false;
    	premier:=test;
    end;
    end;
    function supprimer(n:integer):integer;
    var m,e:integer; ch:string;
    begin
    	str(n,ch);
    	delete(ch,length(ch),1);
    	val(ch,m,e);
    	supprimer:=m;
    end;
    function super_premier(n:integer):boolean;
    var test:boolean;
    begin 
    	test := false;
    	if premier(n) then
    	begin
    		n:=supprimer(n);
    		repeat
    		if premier(n) then n:=supprimer(n);
    		until (not premier(n)) or (n div 10 = 0); 
    		if (n div 10 = 0)  then test := true;
        end;
    	super_premier:=test;
    end;
    procedure trait(p,q:integer);
    var i:integer;
    begin
        for i:= p to q do 
        begin
            if (super_premier(i)=true) then writeln(i, ' est super premier')
            else write;
        end;
    end;
    begin
    	writeln(premier(503));
    	writeln(super_premier(503));
    	writeln(super_premier(47));
    	writeln(supprimer(47));
    	saisie(p,q);
    	trait(p,q);
    end.

  2. #2
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 659
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 659
    Points : 13 032
    Points
    13 032
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (n div 10 = 0)  then test := true;
    1, 2, 4, 6, 8, 9 ne sont pas premier mais sont plus petits que 10

    Edit:

  3. #3
    Membre expérimenté
    Inscrit en
    Mai 2006
    Messages
    350
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 350
    Points : 1 443
    Points
    1 443
    Par défaut
    2 est premier

  4. #4
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 939
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 939
    Points : 5 648
    Points
    5 648
    Par défaut
    Bonjour,
    Citation Envoyé par virginieh Voir le message
    2 est premier
    Eh oui, beaucoup de personnes l'oublient, et mettent 1, qui ne l'est pas.
    Si les cons volaient, il ferait nuit à midi.

Discussions similaires

  1. Les nombres super-premiers
    Par mo5bzn dans le forum Pascal
    Réponses: 9
    Dernier message: 06/02/2015, 21h58
  2. Savoir si un nombre est premier
    Par Jihnn dans le forum Vos contributions VB6
    Réponses: 4
    Dernier message: 11/08/2006, 11h14
  3. Comment savoir si un nombre est premier ?
    Par Extra-Nitro dans le forum Général Python
    Réponses: 9
    Dernier message: 03/01/2006, 15h28
  4. Déterminer si un nombre est premier
    Par Fandefruit dans le forum Langage
    Réponses: 7
    Dernier message: 30/12/2005, 11h52
  5. [MySQL] affiche ke un certain nombre des premier caractere d'une var
    Par Damarus dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 11/09/2005, 18h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo