[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[数值计算] [分享]批处理判断素数

本帖最后由 lincc0519 于 2013-12-8 22:11 编辑

自己无聊做了个素数判断的代码,代码中嵌入素数表以实现没有临时文件和去除建造素数表的时间,代码尽量控制效率与文件体积,素数判断范围2^31-1,本来想发到原创代码的,但权限不够就发这里了!
  1. @echo off&setlocal ENABLEDELAYEDEXPANSION
  2. if %1.==. (exit/b2) else set/a i=%1||exit/b2
  3. if %i% lss 2 exit/b2
  4. set p=1212123132123313213234212127231513323315121662123153331321572127351234332342451513234212642423619353313533133216512331623454543324324275615121572127212010245423372334362315135151392123343301115453346233136591231321261301733495721234213651212366463234242723123135010321012215615433393216564873212156339181011343212435157536121561813215490122348124812433261011313237321323633723643201395423130116184267512433212342135154275613218723432945334567233101415427246362301051801321632634240111216014133323162615181830108421210114635123135165157323433861273245433011315723915721572492312316201001161233130111383613681237219012531515153151534015515435936619323391573212012163843398123133536691329401221231627015536735612343512733231518649236133301437245469212012631833757201533343216321301131291261320133324501681321215732453010213015245334362313231518301026701430102943237335156451546501212432495331356153334353133354012301119245015492153132946983163515135720121815150102124833168423015151323343263462765012363101149537213543230157516518190129389319231545334231516233162792301024324273276210152012336673212936432616015813011735631245330127324695151230103272127360125345101523162730176435120105481572163834242343363233492010261531561201030153245631014132186135401263932732643623636180102159427213011373353151210111233637563420187632316368154011163239163264362363166273831549301710141011315613240113154234269601023342186154512376011401412010212756168101440114233724633201029163237954501635331383163014154834350120105151623010216951512010801324326346632401118753667320102631338401110144320102601201024518166017123633432130122010533723316351530102013213011101223123012342101734861515342460113720132165424627383423343561338433651392333694354927395456136601823423129634332912101223370153236301024243320151564540123627231014781632010533345675787573834380105132126151301131294540111597212912345101520151519293751201001832372010570113101565912730119163242435169578723313210141014312372678723432333424278432648154230133542367015270114623453753156673395349231351543351951623456762453301027875456193656121632420222121563372333430189231633327011619530130122121272334861021212012331927301497356136015323372101223301359343301526618132691320136362012012631601442361932330108133953124330128345370114831621011490171392334549321248166392333136501069231815720151561012384516011318010516695631513591632310120141215186401113215301065463332912691632186672492673324320106572181601523012010012546563663487323018010501561210146730114293792313017918391012213636543864570203132672121243533133363012515363373302601035154566132784630111543011101134566153612751392649633233721662399618649501323433215010234201051017120121665316015368610119675166212361891020483451294546291951212401413011637923433542195301001143015212930151243236701773213272130141234515151201516659675163537627291542456994398733572316623361816327321692018966121246201839165360124338619501051392102031812495631542361594320102301831530123783915010543231516212453697684384213901295612753339610149786701260113154212763237212015313510150111234338663421012623433513601473264362373653343321246279518301035420150186401161368331920132495453720100119640146334360128727635601032496951201057231501291201087573230103531630155432340201216923453991684323310267201081236136632753375784362401131901131938753613249681272466015842130116453337395615120132642945783345343650105426013926930153430116123315123313011939646356181515930102130113393768133276219801863701416363218015401230155192364011130119151501510143783010813201621231623361323432010201654810111234387294201036635151601469195450241234515015101835319234878372010231561363326132634213953463011136927320103842401146338690154212301327012011313537336531656499534833480102151563435010590132301512436692401131601739631014787276233101823010601230111896691333237210114635346963510117332930100111601229910111264657219801933365364323701535401134651513515690103240113301537366351501518421392132013243512342301561332010011421203642401112751201035930108343201060111216591011390151575480253545639101131234335910111875316501027320181236127632313201051536101266332012120121323483156730173732101501142342101413201390111383186162337534629154833015159154246012020165361621239763270152454359427834231516212342301601254951351293618101133492964320103015011613920312163516601412701131335721534575316011945961626151393301731623991833435945451290136011121011337830105619021201213561354236642360150103012356150103326759643627516015816321230132912370273026183360132130113166359166596343534212010012335751011375013294665634834330111501053022935123720132165424626401143593343624956361321866757356163231620133935319542013501038010654518301050102015124819213596793801032432364516321351867534301413901501718619834545450223320102127014438701530152753342963101164362723129010380198123102002172310125319561813834215345198469636533967215010363801329120165432337392195454512315021462391842157650102450192315010563601362401442401235438645640113151353343270144894230102931012012336621011153462010932601233027432013018212013662334651689343695102721501564248763236312762730123356601093384230102016275136812361543215733690174530123156101557668331923015723313237324563016540111530124201531684323487332156187212010951536015496513326612690121534843657363321012234321237245012012613601101513953342135453483732012451632018101134354365753961620135789496638701256401131503031248753012369012101521635127381540110103201639212124026701110110105451327230102316636816542310146456127014432123160293751301401620154323661233784015215432301326159669126465010248643845673246201030204830181323101191530187629427515421986757330215330105462691579594327350157332601921234653930253236450163011156913201543395126010540125130113195
  5. for %%a in (2 3 5) do if %i% equ %%a echo yes&exit/b0
  6. set /a c=i %% 3,d=i %% 5,e=i %%2,q=c*d*e,pn=5
  7. if !q! equ 0 echo no&exit/b1
  8. for /l %%a in (0,1,4791) do (
  9.     set b=%%a
  10.     for %%b in (!b!) do (
  11.         set a=!p:~%%b,1!
  12.         if !a! equ 0 set a=!p:~%%b,3!&set /a a=!a:~-2!
  13.     )
  14.     set /a pn+=a*2,z=i %% pn
  15.     if %i% equ !pn! echo yes&exit/b0
  16.     if !z! equ 0 echo no&exit/b1
  17. )
  18. echo yes&exit/b0
复制代码

支持楼主的帖子。!!!!!!!!!!!

TOP

返回列表