InicioCiencia EducacionGuardar numeros primos en archivo.txt en lenguaje C

Guardar numeros primos en archivo.txt en lenguaje C

Hola a [email protected] !!!
Aquí estoy después de mucho tiempo de no postear nada jaja, pero aquí estamos de nuevo
Les dejo este pequeño programa que hice para un trabajo en la escuela
Estudio Ing. en Ciencias de la Computación en la Benemérita Universidad Autónoma de Puebla (BUAP) en México

Para empezar, ¿Qué es un número primo?

Un número primo es aquel que solo es posible dividirse entre uno, y entre si mismo y que de como resultado un número entero

Ejemplo:
7 es número primo porque NO se puede dividir entre 2,3,4, 5 ni 6; sólo entre 1 y 7
12 no es número primo porque se puede dividir entre 2, 3, 4, 6

Bueno, comenzemos, he aquí el código:

//Librerías, stdio(STanDar Imput Output) para las funciones de comunicación, y stdlib para el uso de archivos)

#include <stdio.h>
#include <stdlib.h>

//Cuerpo principal

int main()
{

/*Declaración de variables:
uso long int por si quieren calcular cantidades grandes, pero tardaran demasiado, aún con una buena computadora jaja
c: va a ser hasta que numero quieren calcular los números primos
cont: es un contador para el ciclo WHILE
i: contador para el ciclo FOR
pri: es un contador que nos va a contar las veces que el residuo de la divición sea 0*/


long int c, cont=1, i;
int pri=0;

//Usamos apuntador para usar el archivo con la función FILE, y nuestro apuntador será "fl"

FILE *fl;

/* Usamos fopen para abrir o crear un archivo, el archivo se llamará Primos.txt, lo pueden cambiar si ustedes gustan por el nombre que quieran, estoy manejando archivos binarios, por eso los permisos "wb" de write(escribir) binario */

fl=fopen("Primos.txt","wb";

// Esto es para mandar a escribir en pantalla, si por cualquier razón el archivo no puede crearse


if (fl==NULL)
{
printf("No se pudo crear el archivo";
return 1;
}

// Preguntamos hasta que número buscaremos los números primos y leeremos del teclado la cantidad deseada por el usuario con scanf


printf("Cu240ntos n243meros primos desea generar?n";
scanf("%d",&c);

// Aumento uno en "c", porque si lo dejo como está, y el usuario ingresa un 7, sólo contará los primos hasta 6, y no el 7 como debería


c++;

/* Aquí vamos con el ciclo while, que dice que mientras "cont" sea diferente de "c" vamos a hacer el proceso de averiguar si es numero primo o no con el ciclo "for".

Lo que hace principanlemte es ir probando dividiendo a "c" (que es el número ingresado por el usuario más 1), entre las unidades desde 1 hasta el mismo "c", viendo la propiedad de los primos, se puede decir que para que tenga de residuo 0, tiene que dividirse entre 1 y el mismo, quiere decir que si es primo sólo dos veces ocurre esto en estas divisiones, y cada vez que esto pasa aumenta en 1 "pri", y cuando termina el ciclo revisa la condición de que si "pri" es igual a 2, quiere decir que si es primo, por eso lo imprime en pantalla y lo guarda en el archivo también.
Hay que igualar a 0 a "pri"
Gracias al while y al contador "cont" esto se repite para cada número desde 1 hasta el ingresado por el usuario. */



while (cont!=c)
{
for (i=1;i<=c;i++)
{
if (cont%i==0)
{
pri++;
}
}
if(pri==2)
{
printf("n%d ",cont);
fprintf(fl,"n%d ",cont);
}
pri=0;
cont++;
}

/* Cuando termine el proceso cerrará el archivo y el programa también */

fclose(fl);
system("pause";
return 1;
}



Bueno pues es fue todo, espero que les sirva, y ojalá me haya podido explicar bien jeje xD

les dejo el código sin comentarios:



#include <stdio.h>
#include <stdlib.h>

int main()
{
long int c, cont=1, i;
int pri=0;

FILE *fl;
fl=fopen("Primos.txt","wb";
if (fl==NULL)
{
printf("No se pudo crear el archivo";
return 1;
}

printf("Cu240ntos n243meros primos desea generar?n";
scanf("%d",&c);
c++;
while (cont!=c)
{
for (i=1;i<=c;i++)
{
if (cont%i==0)
{
pri++;
}
}
if(pri==2)
{
printf("n%d ",cont);
fprintf(fl,"n%d ",cont);
}
pri=0;
cont++;
}
fclose(fl);
system("pause";
return 1;
}



que tengan Excelente día, y si tienen alguna duda pregunten, si lo se les ayudo, y si no, lo investigo para que todos aprendamos
Datos archivados del Taringa! original
25puntos
242visitas
0comentarios
Actividad nueva en Posteamelo
0puntos
2visitas
0comentarios
Dar puntos:

Dejá tu comentario

0/2000

Autor del Post

i
ivan_omana🇦🇷
Usuario
Puntos0
Posts2
Ver perfil →
PosteameloArchivo Histórico de Taringa! (2004-2017). Preservando la inteligencia colectiva de la internet hispanohablante.

CONTACTO

18 de Septiembre 455, Casilla 52

Chillán, Región de Ñuble, Chile

Solo correo postal

© 2026 Posteamelo.com. No afiliado con Taringa! ni sus sucesores.

Contenido preservado con fines históricos y culturales.