IUT-UMLV :: DUT - INFO :: 1ère Année (2012-2013)
Programmation en Langage C :: Corrigé du TD N°3
===================================================================================================
Fonctions ne renvoyant pas de valeur
==========================================
Exercice 1. (Table de multiplication)
--------------------------------------------------
#include <stdio.h>
void Multiples(int n);
int main(void) {
int j;
for (j=1; j<=10; j++) {
Multiples(j);
printf("\n");
}
return 0;
}
void Multiples(int n) {
int i;
for (i=0; i<10; i++) printf("%3d ", n*i);
}
Exercice 2. (Test de primalité)
--------------------------------------------------
#include <stdio.h>
void AffichePremier(int n);
int main(void) {
int test;
do {
printf("Entrez un entier positif : ");
scanf("%d", &test);
if (test < 0)
printf("%d est un numbre negatif. (il faut un numbre positif).\n", test);
} while (test < 0);
AffichePremier(test);
return 0;
}
void AffichePremier(int n) {
int i, estPremier = 1;
if (n == 1 || n == 0) estPremier = 0;
for (i = 2; i < n; i++) {
if (n % i == 0) {
estPremier = 0;
break;
}
}
if (estPremier)
printf("\n%d est un nombre premier.\n\n", n);
else
printf("\n%d n'est pas un nombre premier.\n\n", n);
}
Fonctions renvoyant une valeur
==========================================
Exercice 1. (Test de primalité)
--------------------------------------------------
#include <stdio.h>
int EstPremier(int n);
void DeuxPremiers(int, int);
int main(void) {
int n1, n2;
do {
printf("Entrez un entier positif : ");
scanf("%d%d", &n1, &n2);
if (n1 < 0 || n2 < 0)
printf("(n1= %d, n2= %d) - Il faut entrer deux numbres positifs).\n", n1, n2);
} while (n1 < 0 || n2 < 0);
DeuxPremiers(n1, n2);
return 0;
}
void DeuxPremiers(int n, int m) {
if (EstPremier(n) && EstPremier(m))
printf("\nLes deux nombres sont premiers.\n\n");
else if (!EstPremier(n) && !EstPremier(m))
printf("\nAucun des nombres n’est premier.\n\n");
else
printf("\nUn seul nombre est premier.\n\n");
}
int EstPremier(int n) {
int i, estPremier = 1;
if (n == 1 || n == 0) estPremier = 0;
for (i = 2; i < n; i++) {
if (n % i == 0) {
estPremier = 0;
break;
}
}
return (estPremier);
}
Exercice 2. (Nombre premier supérieur un entier n)
--------------------------------------------------
#include <stdio.h>
int EstPremier(int n);
int PremierSuperieur(int n);
int main(void) {
int n;
do {
printf("Entrez un entier positif : ");
scanf("%d", &n);
if (n < 0)
printf("%d est un numbre negatif. (il faut un numbre positif).\n", n);
} while (n < 0);
printf("Le premier nombre premier superieur ou egal a %d est %d\n", n, PremierSuperieur(n));
return 0;
}
int PremierSuperieur(int n) {
for (;!EstPremier(n); n++);
return (n);
}
int EstPremier(int n) {
int i, estPremier = 1;
if (n == 1 || n == 0) estPremier = 0;
for (i = 2; i < n; i++) {
if (n % i == 0) {
estPremier = 0;
break;
}
}
return (estPremier);
}
Exercice 3. (Liste des nombres premiers)
--------------------------------------------------
#include <stdio.h>
int EstPremier(int n);
void PremiersPremiers(int n);
int main(void) {
int n;
do {
printf("Entrez un entier positif : ");
scanf("%d", &n);
if (n < 0)
printf("%d est un numbre negatif. (il faut un numbre positif).\n", n);
} while (n < 0);
PremiersPremiers(n);
return 0;
}
void PremiersPremiers(int n) {
int i;
printf("\nLes nombres premiers inferieurs a %d: ", n);
for (i = 2; i < n; i++)
if (EstPremier(i)) printf("%d ", i);
printf("\n\n");
}
int EstPremier(int n) {
int i, estPremier = 1;
if (n == 1 || n == 0) estPremier = 0;
for (i = 2; i < n; i++) {
if (n % i == 0) {
estPremier = 0;
break;
}
}
return (estPremier);
}
Exercice 4. (Nombres premiers jumeaux)
--------------------------------------------------
#include <stdio.h>
int EstPremier(int n);
void Jumeaux(int n);
int main(void) {
int n;
do {
printf("Entrez un entier positif : ");
scanf("%d", &n);
if (n < 0)
printf("%d est un numbre negatif. (il faut un numbre positif).\n", n);
} while (n < 0);
Jumeaux(n);
return 0;
}
void Jumeaux(int n) {
int i;
if (n <= 4)
printf("Pas de couples..\n");
else {
printf("\nLes couples de nombres premiers jumeaux inferieurs a %d: \n", n);
for (i = 2; i < n; i++)
if (EstPremier(i) && EstPremier(i+2)) printf("(%d, %d)\n", i, i+2);
}
}
int EstPremier(int n) {
int i, estPremier = 1;
if (n == 1 || n == 0) estPremier = 0;
for (i = 2; i < n; i++) {
if (n % i == 0) {
estPremier = 0;
break;
}
}
return (estPremier);
}
1 / 7 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !