Bom dia.
Sei que esse é um problema meio besta de se resolver mas gostaria de pedir um auxilio. Escrevi umm algoritmo para o SPOJ no problema de nºs primos e ele estoura no tempo de execução, quero saber se alguém tem uma idéia de deixar o algoritmo mais rápido.
#include <stdio.h>
int main()
{
int np,i,na = 0;
scanf("%d", &np);
if(np < 0)
np*=-1;
for(i = 1; i<=np; i++)
if((np%i)==0)
{
na++;
if(na > 2)
break;
}
if(na == 2)
puts("sim");
else
puts("nao");
return 0;
}
Ja troquei printf por puts no inicio não tem entrada, o ´rograma fica esperando o usuário(no caso o proprio algoritmo de verificação do SPOj) entrar com algum dado mais ainda não é aceito.
PS: estou pedindo isso não para conseguir mandar um algoritmo melhor mas sim para ver se existe uma outra lógica que tornaria esse programa mais rápido.
GRATO

mas no seu código VinyGodoy o n° 1 ta dando como primo, eu não tenho certeza agora mas pelo que eu sei 1 não é primo.