Verificar se um número é primo e inteiro positivo em pascal!

Durante minhas aulas de laboratório de algoritmos, sugiu a dúvida entre os alunos de como era possível verificar se um número era inteiro e positivo e em caso afirmativo dizer se era primo ou não.

Como nós estamos mais acostumados a usar o operador “mod” e este suporta apenas valores declarados como “Integer”, não poderiamos deixar o usuário digitar um número com casas decimais.

Por isso dediquei algum tempo para provar que isto era possível, e não é tão complicado, bastou analisar bem o problema, e pesquisar um pouco a linguagem Pascal. Já que não é objetivo da disciplina um estudo avançado da linguagem, eu mesmo estou passando a solução aos alunos.

O fonte do programa (.pas) pode ser baixado aqui, ou abaixo temos o fonte do programa, com testes realizados no ambiente Free Pascal.

program primo;
{************************************************************************
Autor: Professor Eduardo Comin
Data: 15/05/2009

Objetivo: demonstrar que é poss¡vel verificar se um número
é inteiro e positivo e em caso afirmativo testar se é primo.

*************************************************************************}
uses crt;
var
i, qtde: integer;
num : real;
{preciso usar real para que aceite um n£mero com casas digitado pelo usu rio}

begin

clrscr;{Limpa a tela}

writeln(‘Informe um n£mero inteiro e positivo ‘);
readln(num);

{inicialização das variáveis}
qtde := 0;
i := 1;

{A função ” frac ” me retorna a parte fracionária de um número,
ou seja o que vem depois do ponto}

{A função ” int ” me retorna a parte inteira do número}

if (frac(num) = 0) and (num > 0) then
begin

repeat

if frac(num/i) = 0 then
qtde := qtde + 1;
i := i + 1; {incremento minha vari vel de controle do loop}

until i = int(num);

{se a quantidade de vezes que sobrou zero for maior que dois não é primo}
if qtde > 2 then
writeln(‘o número informado:’, num:10:0, ‘ não é primo’)
else
writeln(‘o número informado:’, num:10:0, ‘ ? primo’);

end else
writeln(‘O número informado não é um número inteiro e positivo’);

readln;
end.

Posts interessantes sobre RubyOnRails!

Primeiro vou colocar os 3 posts que mais gostei do blog do Nando Vieira.

No link abaixo o Nando Vieira fala sobre a codificação em arquivos, que sempre foram uma parte complicadade se implementar…
http://simplesideias.com.br/migrando-de-iso-8859-1-para-utf-8-no-rails/

Já neste link ele fala sobre a programação de testes…que todo mundo fala maravilhas mais ninguém explica como fazer.
http://simplesideias.com.br/tdd-no-rails-unit-tests/

Aqui ele fala sobre como lidar com as urls no ruby, sendo que isto é fundamental para uma aplicação web.
http://simplesideias.com.br/lidando-com-urls-no-rails/

Uma sugestão legal para um ou vários posts no blog seria sobre a integração de recursos ajax + css + ruby. Aí temos um vasto campo para explorar…