Prime numbers generator

Description

Ce petit programme très simple permet de sortir sous forme d'un fichier texte le liste des nombres premiers jusqu'à un nombre spécifié ainsi que leur rang.

Source / Exemple :


#include <stdio.h>
#include <math.h>
 #include <stdlib.h>
int premier(int x);
int divisible(double x, int a);

void listnb(int a){
/* Fonction de listage des nombres premiers inférieurs à a) */
int b;
int u;

/* Definition du fichier de sortie */
FILE *sortie;

b=3;
u=1;
/* Ouverture du fichier 'sortie.txt' si il n'existe pas il est crée,
si il existe les données précendentes sont effacées */
sortie=fopen("sortie.txt","w");
/* Boucle d'affichage des nombres premiers */
printf("1 : 2 \n");
  fprintf(sortie,"1 : 2 \n");
while(b<=a){
/* On vérifie si b est premier*/
if (premier(b)==1){
u++;
/* Si oui, on affiche le rang du nombre et le nombre */
printf("%d : %d \n",u,b);
/* Et on inscrit tout dans le fichier */
 fprintf(sortie,"%d : %d \n",u,b);};

b+=2    ;
};
 fclose(sortie);
};

int main(int argc, char *argv[])
{
int a;
printf("Prime Numbers Generator v1.0b3 by Yann JOUANIN\n");
printf("Entrer le nombre auquel s'arretera la recherche de nombres premiers : \n");
 /* On acquiert par le clavier le nombre où on va s'arrêter*/
 scanf("%d",&a);
            /* On liste les nombres premiers jusqu'à ce nombre */
            listnb(a);
  return 0;
}

int divisible(double x, int a){

double c;
double d;
double b = x/a;

d = floor (b);

c=b-d;

if (c==0) {

return (1);
}
else {

return (0);
}
};

int  premier(int x) {
int premiern;
int b;
if (x==2) {
return (1);}
else {
if ((x & 1) == 0){
return (0);}
else {
premiern=0;
b=3;}}
while((premiern==0)&(b<sqrt(x))){
premiern=divisible(x,b);
b=b+2;}
if (premiern==1||x==1){
return (0);}
else {
return (1);}       };

Conclusion :


Pour avoir la dernière version http://www.tpe-crytpographie.fr.st

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.