这个方法好啊~以游戏的方式.
为支持楼主,我先来解第一道题吧。 | @echo off&setlocal enabledelayedexpansion | | echo 2 | | for /l %%a in (3 2 100) do set/a n=2,m=%%a&call :lp %%a | | pause>nul&exit/b | | :lp | | set/a mod=m%%n | | if %mod% equ 0 ( | | set "res=%res%%n%*" | | set/a m/=n | | goto lp | | ) else ( | | set/a n+=1 | | if !n! leq !m! goto lp | | ) | | if "!res:~,-1!" equ "%1" echo !res:~,-1! | | set "res="COPY |
效率不怎么样,因为是先分解出每个数的质因数,最后再作比较,期待好的方案。
昨晚思维定向的厉害,简化: | @echo off&setlocal enabledelayedexpansion | | echo 2 | | for /l %%a in (3 2 100) do ( | | set/a m=%%a-1,a=0 | | for /l %%i in (2 1 !m!) do ( | | set/a n=%%a%%%%i | | if !n! equ 0 set a=1 | | ) | | if !a! equ 0 echo %%a | | ) | | pauseCOPY |
第2题:
列出100以内所有能被3整除的偶数。
[ 本帖最后由 pusofalse 于 2008-9-18 02:50 编辑 ] |