/* primos.c, cantidad de primos menores que n
(primo: solo divisible por 1 y n; como 2, 3, 5, 7, 11 , 13, 17)
*/
#include <stdio.h>
#include <stdlib.h>
int primos(int n);
int primo(int n);
int main() {
int lim, can; // limite, cantidad de primos
printf(“Obtiene cantidad de primos menores que n.\n\n”);
printf(“Limite (mayor que uno): “);
scanf(“%d”, &lim);
can = primos(lim);
printf(“\nCantidad de primos: %d\n\n”, can);
system(“pause”);
return 0;
}
int primos(int n) {
/* obtiene los primos menores que n */
int cp = 1; // cantidad de primos
int c; // contador de 3 a n-1
for (c = 3; c < n; c++)
if (primo(c)) cp++;
return cp;
}
int primo(int n) {
/* determina si n es primo (mayor que 2) */
int sp = 1; // si n es primo (1 = si, 0 = no)
int d; // divisor (posible factor)
for (d = 2; sp && d <= n/2; d++)
if (n%d == 0) sp = 0;
return sp;
}
* * * * * * *
/* perfecto.c, determina si un numero es perfecto
(igual a la suma de sus factores propios, como 6 = 1 + 2 + 3; 28 = 1 + 2 + 4 + 7 +14)
*/
#include <stdio.h>
#include <stdlib.h>
int perfecto(int n);
int main() {
int num, siPer; // numero, si perfecto
printf(“Determina si un entero positivo es perfecto.\n\n”);
printf(“Numero: “);
scanf(“%d”, &num);
siPer = perfecto(num);
if (siPer == 1)
printf(“\n%d es perfecto.\n\n”, num);
else
printf(“\n%d NO es perfecto.\n\n”, num);
system(“pause”);
return 0;
}
* * * * * * *
Nota:
Pongan el énfasis en las funciones, el código reciclable.
ecabrera.