Ver Mensaje Individual
  #1  
Antiguo 11-06-2013
Subliminalz Subliminalz is offline
Registrado
NULL
 
Registrado: abr 2013
Posts: 7
Reputación: 0
Subliminalz Va por buen camino
Suma de dígitos primos - Simplificar código

Hola, como están, espero que muy bien y con ánimos de ayudar, tengo un pequeño código que suma los dígitos primos de cualquier combinación de números que el usuario teclee, quisiera saber ¿cómo simplifico el código?, los dígitos van del 1 al 9.

-Si el usuario teclea: 245896, entonces los primos son: 2 y 5, y la suma de estos 2 primos es: 7...
-Si el usuario teclea: 221479, entonces los primos son: 2, 2, 7 y la suma de estos 3 primos es: 11...

No sé qué hacer con esas excepciones que he puesto allí, en total 4, donde "r (residuo)" tiene que ser distinto de: 1, 4, 6 y 9... ¿Qué puedo hacer para simplificar esta operación?, pensé en hacerlo con la fórmula de series, pero se complica más, al menos para mí... trate de hacerlo de otra manera pero se me queda el 2, ya que es par...

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var r,x,s:integer;
begin
  x:=StrToInt(Edit1.Text);
  s:=0;
  repeat
  r:=x mod 10;
  x:=x div 10;
  if r<>1 then
  if r<>4 then
  if r<>6 then
  if r<>9 then
  if r div 2<=3 then
  s:=r+s;
  until x=0;
  Edit1.Text:=IntToStr(s);
end;

Proyecto hecho en Delphi XE3, muchas gracias por su ayuda... y consejos que me puedan brindar...
Responder Con Cita