房天下 > 房天下问答 > 业主生活 > 其他
  • 批处理 分解质因数问题

    @echo offset /p a=请输入要分解的数set /a c=a/2:aset /a b=%b%+1set /a d=%a%/%b%set /a s=%a%%%%b%if not "%s%"=="0" (goto a) else (set/p=%b% <nul &set a=%d% &set b=1&goto a)pause这段代码 是可以正确执行的,但是效率不高-》1.当答案已经出来后,b还在继续循环 2.而且如3659 分解时 效率很低 哪位大虾赐教 不好意思 没高分了 这几天都用光了

    提问者:idy430a

    发布于2010-12-18

共1个回答
  • 送给我的好朋友 丨Lv 4
    改进后的算法,质因数都是奇数,所以用 a=2*%b%+1 可少一半的穷举。而且输入数小于 穷举数的平方 使算法复杂度再下降为log2(n)@echo offset /p in=输入数字:echo 质因数有:set /a a=2 & set /a b=1:xset /a k=%in%%%%a%if %k%==0 (set/p=%a% <nul)if %k%==0 set /a in=%in%/%a% && goto xif %in%==1 pauseset /a a=2*%b%+1 && set /a b=%b%+1set /a t=%a%*%a%if /i %t% leq %in% goto xif /i %t% geq %in% (set/p=%in% <nul)pause
    +1 2010-12-19 举报
热门人气推荐
免责声明:问答内容均来源于互联网用户,房天下对其内容不负责任,如有版权或其他问题可以联系房天下进行删除。