BATCH – Verificador de numeros primos.

ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION
ECHO EJEMPLO:
ECHO Entrada:1 2 3 4 5 6 7 8 9 10 11 12 13
ECHO Salida: 1 1 1 0 1 0 0 1 0 0 0 0 1
SET PROC=PROCESANDO
SET /P N=INSERTE UNA CADENA DE NUMEROS A VERIFICAR SEPARADOS POR UN ESPACIO:
:NEXTNUM
IF "%FIN%"=="1" GOTO SHOWNUMS
SET RN=
:NEXTCHAR
call set CHAR=%%N:~%NUM%,1%%%
set /a NUM+=1
IF "%CHAR%" EQU " " (GOTO EMPIEZA)
IF "%CHAR%" EQU "" SET FIN=1
IF "%CHAR%" EQU "" (GOTO EMPIEZA)
SET RN=%RN%%CHAR%
GOTO NEXTCHAR
:EMPIEZA
SET X=%RN%
SET Y=%X%
SET CT=0
SET /A Y=(5*%X%*%X%)+4
SET RETURN=POSITIVO
GOTO CHECKROOT
:POSITIVO
IF "%EXACTO%"=="1" GOTO ISFIB
SET RETURN=NEGATIVO
SET /A Y=!Y!-8
GOTO CHECKROOT
:NEGATIVO
IF "%EXACTO%"=="1" GOTO ISFIB
SET OUTP=%OUTP% 0
GOTO NEXTNUM
:ISFIB
SET OUTP=%OUTP% 1
GOTO NEXTNUM
:SHOWNUMS
CLS
ECHO %OUTP%
PAUSE
EXIT
:CHECKROOT
CLS
SET PROC=%PROC%.
ECHO %PROC%
SET /A DEND=!Y!
SET EXACTO=0
FOR /L %%I IN (%DEND%, -1, 1) DO (
   SET /A SQR=%%I*%%I
   IF !SQR!==%DEND% (SET EXACTO=1)
)
GOTO %RETURN%
Esta entrada fue publicada en BATCH - DOS. Guarda el enlace permanente.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *