Jump to content
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

Sign in to follow this  
dicas3d

compilar mais rápido

Recommended Posts

dicas3d

Já não está a dar isso. Agora dá "time limite execeed" e não sei que fazer para o pôr a executar mais rápido.

program primos;
uses crt;
var x,qnt, numero, ct, maior, contador :integer;
i : longint;
num:packed array[2..999999999] of boolean;
maximo, limite : byte;
linha, cadeia, parte : string;
begin
clrscr;
qnt:=0;
read(limite);
for i:=2 to 9999999 do
begin
num[i]:= true;
end;
for i:=2 to 9999999 do
begin
  x:=2;
  while i*x <=limite do begin
  num[i*x]:= false;
  x:=x+1
  end;
  end;
  cadeia := '';
  linha := '1';
    while (not eof) or (linha <> ' ') or (length(cadeia) < 10000000) or (length(linha) < 100) or (linha <> 'scanf') do begin
  readln(linha);
  cadeia := cadeia + linha;
  end;
   ct := length(cadeia) - limite;
  for i:=2 to limite do begin
  contador := 0;
   repeat
   parte := copy(cadeia, contador, limite);
   if length(parte) = limite then begin
   val(parte, numero);
   if num[numero] = true then qnt := qnt + 1;
   end;
   until contador = ct;
   end;
   writeln(qnt);
end.

preciso de uma maneira de fazer isto executar mais rápido.


Abraços

dicas3d

Share this post


Link to post
Share on other sites
Warrior

Deve haver aqui alguma confusão.

TLE refere-se a tempo de execução, não de compilação.

Share this post


Link to post
Share on other sites
vasco16

Para correr um programa mais rápido, ou tentas simplificar o algoritmo ou tentas dividir o programa em sub-programas (rotinas/procedimentos/funções).

Este numero enorme é mesmo necessário:

num:packed array[2..999999999] of boolean;

Quem diz este diz outros que o teu programa tem.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.