Pascal/Turbo Pascal - logaritmo que imprima los números primos comprendidos entre 1 y 1000

 
Vista:

logaritmo que imprima los números primos comprendidos entre 1 y 1000

Publicado por gabriel (8 intervenciones) el 27/10/2014 13:25:59
Escribe un algoritmo que imprima cuáles y cuántos son los números primos comprendidos entre 1 y 1000. (Supongamos que existe el operador Mod(x, a), el cual nos da como resultado el resto de la división de x entre a)
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

logaritmo que imprima los números primos comprendidos entre 1 y 1000

Publicado por David (224 intervenciones) el 27/10/2014 21:10:50
Te propongo la siguiente solución:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
Uses CRT;
 
const N=1000;
 
var a:ARRAY[1..N] of boolean;
 
i,j,m : word;
cont  : integer;
 
begin
  clrscr;
  for i:=1 TO N do A[i]:=TRUE;
    m:=trunc(sqrt(N));
  for i:=2 to m do
   if a[i] then
     for j:=2 to N DIV i do
        a[i*j]:=FALSE;
       for i:=1 to N do
         if a[i] then
           begin
             write(i:4);
             cont:=cont+1;
           end;
   writeln;
   Writeln('Hay ',cont,' n£meros primos entre 1 y ', N);
   readln;
end.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

logaritmo que imprima los números primos comprendidos entre 1 y 1000

Publicado por Jesús (2 intervenciones) el 17/06/2016 19:11:03
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
Program Numprimo;
Uses CRT;
 
Var max, numero, divisor, cont, subtotal, total: Integer;
 
BEGIN
    ClrScr;
    WriteLn('Cálculo de números primos del 2 hasta un valor dado');
    Write('Teclea valor máximo: ');
    ReadLn(max);
    WriteLn('');
    While numero<=max Do
    Begin
        For divisor:=1 to max Do
        Begin
            If numero Mod divisor = 0 then
            cont:=cont + 1;
        End;
        If cont=2 then
        Begin
            Write(numero,' ');
            subtotal:=(cont div 2);
        End;
        total:=(total+subtotal);
        subtotal:=0;
        cont:=0;
        numero:=numero+1;
        End;
        WriteLn('');
        WriteLn('');
        Write('En total son ', total, ' números primos del 2 al ', max);
        ReadKey;
END.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar