BUT2/DEV/DEV1.1_suite/TP01_AllocationDynamique/Q4_Premiers.c

47 lines
1.2 KiB
C
Raw Normal View History

2023-10-23 13:23:36 +02:00
#include<stdio.h>
#include<stdlib.h>
int premier(int nb){
int diviseur;
if (nb<2){
return 0;
}
if (nb==2){
return 1;
}
if (nb>2){
for (diviseur=2; diviseur<nb;diviseur++){
if (nb%diviseur==0){
return 0;
}
}
return 1;
}
}
int main(void){
int nbSaisis;
int* p= (int*) malloc(sizeof(int));
int taille=0;
int numPremier;
p[0]=2;
printf("Bonjour, dans ce programme, vous allez saisir des entier n positifs.\nVous aurez en réponse, le nième nombre premier.\nSaisissez 0 pour quitter.\n");
printf("Saisissez votre premier entier positif : ");
scanf("%d\n", &nbSaisis);
while (nbSaisis!=0) {
if (nbSaisis>taille){
p = (int*) realloc(p, nbSaisis*sizeof (int));
for (numPremier=taille;numPremier<nbSaisis;numPremier++){
int valPremier;
for (valPremier=p[numPremier-1]+1;premier(valPremier)!=1;valPremier++){}
p[numPremier]=valPremier;
}
taille=nbSaisis;
}
printf("%d\n",p[nbSaisis-1]);
printf("Saisissez un autre entier : ");
scanf("%d", &nbSaisis);
}
printf("Au revoir...");
}