Это код:Batch Неисправного Prime Number Generator
@echo off
title
setlocal enabledelayedexpansion
set a=2
set b=3
echo 2
goto c
:b
set /a b+=2
:c
:a
for %%G in (!a!) do (set /a d=%%G*%%G
if !d! gtr !b! call :d
set /a c=b%%%%G
if !c!==0 call :b)
:d
set a=!a! !b!
echo !b!
goto b
exit
Предел это 509 и когда я убираю, если заявление по тестовому значению в квадрате, если укорачивает возможные результаты вместо того, чтобы сделать код более эффективный. Без указанного оператора if код вычисляется до 800, но вместе с ним он ограничен 509. Что я могу сделать, чтобы обойти это ограничение?
Я подправил сценарий здесь и там, и перекодировать его работать лучше:
@echo off
title
setlocal enabledelayedexpansion
set a=3
set b=3
echo 2
echo 3
:a
set /a b+=2
for %%G in (!a!) do (set /a d=%%G*%%G
if !d! gtr !b! goto b
set /a c=b%%%%G
if !c!==0 goto a)
:b
set a=!a! !b!
echo !b!
goto a
Ваш ответ несколько странный в том, что он совершенно неконструктивен, выход остался после того, как я создал схему из другого скрипта, и goto почти не имеет разницы, он заканчивает сценарий в 700-х годах. – user3093536
@ user3093536: Прошу прощения, если мой ответ вас беспокоит; это не было моим намерением. См. Редактирование в моем ответе, пожалуйста ... – Aacini