本帖最后由 terse 于 2019-12-14 17:07 编辑
P会溢出唉~
改里面循环3开始递增2- @echo off & setlocal enabledelayedexpansion
- set time_sta=%time%
- set /a count=1000,sum=sum_1=0,f=1
- for /l %%a in (2,1,%count%) do (
- if %%a gtr 2 (
- set /at=2,p=%%a,f=p%%2
- if !f! neq 0 (
- for /l %%p in (1,1,8) do (
- set /a "t=(p/t+t)/2,n=t*t,r=t,y=p-n"
- if !n! gtr !p! set /a "t=(p/t+t)/2,n=t*t,r=t,y=p-n"
- )
- REM set /at+-1
- for /l %%b in (3,2,!t!) do (
- set /a t1=%%a %% %%b
- if !t1! equ 0 set f=0
- )
- )
- )
- if !f! equ 0 (
- set /a sum_1+=1
- echo %%a是一个合数!
- ) else (
- set /asum+=1
- echo %%a是一个质数!
- )
- )
-
- echo;质数有%sum%个
- echo;合数有%sum_1%个
- echo;开始时间为%time_sta%
- echo;结束时间为%time%
- pause & exit
复制代码
|