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...