Distribución de Números Primos

Fran Mengual

/*
Este programa muestra la distribución de los N
primeros números primos sacando en cada línea
A números, con un asterisco si es primo y un espacio si
no lo es.
*/

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

using namespace std;

int primo (int n);

int main()
{
int A, N, i, p;

cout << "\n Introduce un entero mayor o igual que 1: ";
cin >> N;
cout << "\n Introduce el rango: ";
cin >> A;
cout << endl << endl << endl;

printf ("\n %8d - %8d " , 0 , A );
for ( i=2; i<=N; i++)
{
p = primo(i);
if (p==1) cout << "*";
if (p==0) cout << " ";

if (i%A==0 && i!=N) printf ("\n %8d - %8d " , i+1 , i+A );
}

cout << endl << endl;
return 0;
}

int primo (int n)
{
int i;
double x;

if (n % 2 == 0) {
if (n == 2) {
return 1;
} else {
return 0;
}
} else {
x = sqrt(n);
i = 3;
while ((i <= x) && (n % i != 0)){
i = i + 2;
}
if (i > x) {
return 1;
} else {
return 0;
}
}
}
Anuncios
Esta entrada fue publicada en Informática e Internet. Guarda el enlace permanente.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s