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

SAS Base Discussion :

Détecter si un nombre est premier ou pas


Sujet :

SAS Base

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2018
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2018
    Messages : 20
    Points : 26
    Points
    26
    Par défaut Détecter si un nombre est premier ou pas
    bonjour

    je cherche à réaliser une macro qui détecte si une variable est un nombre premier ou pas

    voila mon code mais il ne marche pas
    merci d'avance

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    %macro dett(nb);
    %let count=0;
    %do i=1 %to &nb ;
     
    %let modul=%sysfunc(mod(&nb,&i));
    %if  &modul. eq 0 %then &count=%eval(&count+1);
    %end;
    %put &count;
    %if &count gt 2 %then %put " &nb pas premier ";
    %else  %put " &nb est premier ";
    %mend;

  2. #2
    Membre expérimenté
    Homme Profil pro
    Développeur en SAS/ Statisticien
    Inscrit en
    Janvier 2013
    Messages
    483
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur en SAS/ Statisticien
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2013
    Messages : 483
    Points : 1 552
    Points
    1 552
    Par défaut
    Bonjour,
    Cette solution peut répondre à ta requête (ton code repris et rectifié) à vérifier :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    %macro dett(nb) ;
    %do i=1 %to &nb. ;
    	%do j=2 %to &i.-1 ;
    		%if %sysfunc(mod(&i., &j.)) eq 0 %then %do  ; 
    		%put " &i. n'est pas premier "  ;  %goto leave  ; 
                                                          %end  ;
            %end ;
    %put " &i. est premier ";	
    %leave: ;
    %end ;
    %mend;	%dett(10) ;
    Bon courage
    Ward

  3. #3
    Membre éprouvé
    Avatar de m.brahim
    Homme Profil pro
    SAS / BIG DATA
    Inscrit en
    Juillet 2011
    Messages
    461
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : SAS / BIG DATA
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2011
    Messages : 461
    Points : 1 119
    Points
    1 119
    Billets dans le blog
    14
    Par défaut
    Bonjour,
    Une autre solution est possible avec la fonction fcmp:
    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
    proc fcmp outlib=work.pack1.MyFunc1;
        function MyFunc1(var$) $10;
           length var1 $10;
     
            do i =2 to int(sqrt(var));
                       if mod(var,i)=0 then do; 
                                                        var1="NbrNPre";
                                                       leave;
                                           end;
                       else do;
                                 var1="NbrPre";
                       end;
            end;
     
           return (var1);
        endsub;
    quit;
     
    data test;
    input a;
    cards;
    34679
    34678
    23456789
    ; run;
     
    options cmplib=work.pack1;
     
    data test1;
    set test;
        result=MyFunc1(a);
    run;
    Cordialement
    Certification des Talents de la programmation In Memory Statistics sur HADOOP:
    http://talents-imstat.groupe-avisia....avance?uid=162

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. comment tester si un nombre est premier en php ?
    Par Shyboy dans le forum Langage
    Réponses: 1
    Dernier message: 09/03/2007, 17h08
  2. Réponses: 9
    Dernier message: 30/01/2007, 21h03
  3. Savoir si un nombre est premier
    Par Jihnn dans le forum Vos contributions VB6
    Réponses: 4
    Dernier message: 11/08/2006, 10h14
  4. 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, 14h28
  5. Déterminer si un nombre est premier
    Par Fandefruit dans le forum Langage
    Réponses: 7
    Dernier message: 30/12/2005, 10h52

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