找回密码
 欢迎注册
楼主: lyg_wangyushi

[分享] 快速生成素数表的方法

[复制链接]
 楼主| 发表于 2008-3-12 21:14:52 | 显示全部楼层
1000:0.06246659294666625 1001:0.06245871271543797 1002:0.06245083943764704 1003:0.06244297111971361 1004:0.06243511566983064 1005:0.06242726318389556 1006:0.06241942351754068 1007:0.06241161425649758 1008:0.06240382157148616 1009:0.06239603180471903 1010:0.06238824883954443 1011:0.06238048814184079 1012:0.06237274189967740 1013:0.06236500238585439 1014:0.06235727342286197 1015:0.06234955689354346 1016:0.06234184704355044 1017:0.06233414005294053 1018:0.06232643782384712 1019:0.06231874415172962 1020:0.06231106091363917 1021:0.06230338430147782 1022:0.06229571430464150 1023:0.06228806784406648 1024:0.06228043543776284 1025:0.06227280957325472 1026:0.06226518837516718 1027:0.06225757556328612 1028:0.06224997483375819 1029:0.06224239169636828 1030:0.06223481870796381 1031:0.06222724848308752 1032:0.06221968837514400 1033:0.06221213102200722 1034:0.06220457825631316 1035:0.06219703190446840 1036:0.06218950473129831 1037:0.06218198393014565 1038:0.06217446767438230 1039:0.06216696502352260 1040:0.06215946689723825 1041:0.06215197148340764 1042:0.06214448058651920 1043:0.06213700320947835 1044:0.06212953212576914 1045:0.06212207270301422 1046:0.06211463560583919 1047:0.06210720829080799 1048:0.06209978718813254 1049:0.06209237405846940 1050:0.06208497065152311 1051:0.06207756989211775 1052:0.06207019638340031 1053:0.06206282725169150 1054:0.06205546423979783 1055:0.06204810384788231 1056:0.06204075478903499 1057:0.06203341008028762 1058:0.06202607839253437 1059:0.06201875276617408 1060:0.06201145730060930 1061:0.06200417297577662 1062:0.06199689634475025 1063:0.06198962568726874 1064:0.06198236439809371 1065:0.06197510566002156 1066:0.06196785117030366 1067:0.06196061447158005 1068:0.06195338705825081 1069:0.06194616722524088 1070:0.06193896166897413 1071:0.06193175862656584 1072:0.06192456478771968 1073:0.06191738346279938 1074:0.06191020630000086 1075:0.06190303163244958 1076:0.06189586775886638 1077:0.06188870968464886 1078:0.06188156565721210 1079:0.06187442739839825 1080:0.06186729654356381 1081:0.06186016979589148 1082:0.06185305043005008 1083:0.06184593515909299 1084:0.06183882561372465 1085:0.06183172341714561 1086:0.06182462692645157 1087:0.06181753613313509 1088:0.06181045589763708 1089:0.06180338133475535 1090:0.06179631081864338 1091:0.06178924596088430 1092:0.06178218675307431 1093:0.06177513479704724 1094:0.06176809810325557 1095:0.06176106541532397 1096:0.06175404950422374 1097:0.06174703757626823 1098:0.06174003598452582 1099:0.06173303677400722 1100:0.06172604628178958 1101:0.06171906132690876 1102:0.06171207874275593 1103:0.06170510483850203 1104:0.06169814116568423 1105:0.06169117984997107 1106:0.06168422245966432 1107:0.06167728150968573 1108:0.06167034602317841 1109:0.06166343463171554 1110:0.06165652865852350 1111:0.06164962655075919 1112:0.06164273139064838 1113:0.06163584470408927 1114:0.06162896800603013 1115:0.06162209667500036 1116:0.06161522764181844 1117:0.06160838074464745 1118:0.06160153612952194 1119:0.06159469683384863 1120:0.06158786133314572 1121:0.06158102810765663 1122:0.06157420774791494 1123:0.06156739719512788 1124:0.06156058890173020 1125:0.06155378587499778 1126:0.06154699110892260 1127:0.06154020308740402 1128:0.06153343373275796 1129:0.06152667404543150 1130:0.06151991955272699 1131:0.06151317912108979 1132:0.06150644385566538 1133:0.06149971227595041 1134:0.06149299173040610 1135:0.06148627632233245 1136:0.06147956457947443 1137:0.06147286234851624 1138:0.06146616668765702 1139:0.06145947612853134 1140:0.06145279502448432 1141:0.06144611755028846 1142:0.06143944515181411 1143:0.06143278216025661 1144:0.06142612422353175 1145:0.06141947565504777 1146:0.06141282924495632 1147:0.06140619504065202 1148:0.06139957585394935 1149:0.06139296023323457 1150:0.06138634675049911 1151:0.06137974109605485 1152:0.06137314892109018 1153:0.06136656311264280 1154:0.06135998083621755 1155:0.06135340913429657 1156:0.06134684095004067 1157:0.06134027487480252 1158:0.06133371371586843 1159:0.06132716866051512 1160:0.06132062849109415 1161:0.06131409876811565 1162:0.06130757390924919 1163:0.06130105390776995 1164:0.06129454152554242 1165:0.06128803398317852 1166:0.06128152851306036 1167:0.06127503063070292 1168:0.06126853481488285 1169:0.06126204244073695 1170:0.06125555213006413 1171:0.06124907759754853 1172:0.06124260511761642 1173:0.06123613605612729 1174:0.06122967177490105 1175:0.06122321226738181 1176:0.06121676160757069 1177:0.06121031570237878 1178:0.06120387996316078 1179:0.06119745165941505 1180:0.06119103212184457 1181:0.06118461729512040 1182:0.06117820851568234 1183:0.06117180309127488 1184:0.06116542238791708 1185:0.06115905165336985 1186:0.06115268953419235 1187:0.06114633204489677 1188:0.06113997785887942 1189:0.06113362829216856 1190:0.06112728070331048 1191:0.06112094167181579 1192:0.06111460723905884 1193:0.06110828133001846 1194:0.06110196653397319 1195:0.06109565369519501 1196:0.06108934802343372 1197:0.06108304820410573 1198:0.06107676329329144 1199:0.06107048032206489 1200:0.06106420574276539 1201:0.06105793567338016 1202:0.06105166882172529 1203:0.06104540646981004 1204:0.06103915630021141 1205:0.06103290805000154 1206:0.06102666810438760 1207:0.06102043262179800 1208:0.06101420032350143 1209:0.06100797629000928 1210:0.06100175796605759 1211:0.06099554407607429 1212:0.06098933840468595 1213:0.06098313588883070 1214:0.06097693778578274 1215:0.06097074786214192 1216:0.06096456233430767 1217:0.06095837868867076 1218:0.06095220318682813 1219:0.06094603580817925 1220:0.06093987154846364 1221:0.06093371662759217 1222:0.06092756605560997 1223:0.06092142602073588 1224:0.06091529031462039 1225:0.06090915646200588 1226:0.06090302939667423 1227:0.06089690787396876 1228:0.06089079802066547 1229:0.06088469245583836 1230:0.06087860824553999 1231:0.06087252585886345 1232:0.06086646104608484 1233:0.06086039804568180 1234:0.06085434890563155 1235:0.06084830397179766 1236:0.06084226083901667 1237:0.06083622430157853 1238:0.06083019554087082 1239:0.06082416857212605 1240:0.06081814578090196 1241:0.06081212597037233 1242:0.06080611151819446 1243:0.06080011071768936 1244:0.06079411406015729 1245:0.06078811917660929 1246:0.06078213078933940 1247:0.06077614770726544 1248:0.06077016756875248 1249:0.06076419154676716 1250:0.06075822080965929 1251:0.06075225300484546 1252:0.06074629281128077 1253:0.06074034370807724 1254:0.06073440217000543 1255:0.06072847281315977 1256:0.06072254634953012 1257:0.06071662393205723 1258:0.06071070555561391 1259:0.06070479236718929 1260:0.06069888205734924 1261:0.06069297347348305 1262:0.06068707465207442 1263:0.06068118327505742 1264:0.06067529361347584 1265:0.06066941023389535 1266:0.06066353198467203 1267:0.06065765999435312 1268:0.06065178970886059 1269:0.06064592226282124 1270:0.06064005878778857 1271:0.06063420380480240 1272:0.06062835616242563 1273:0.06062252146353597 1274:0.06061669181439052 1275:0.06061087837890434 1276:0.06060506661570759 1277:0.06059925763778985 1278:0.06059346033006596 1279:0.06058766579431670 1280:0.06058187292063907 1281:0.06057608281522756 1282:0.06057030099955368 1283:0.06056452524852864 1284:0.06055875664911456 1285:0.06055298969771478 1286:0.06054722987752095 1287:0.06054147935706530 1288:0.06053573047477900 1289:0.06052999738163810 1290:0.06052426917141934 1291:0.06051855340324752 1292:0.06051284248946030 1293:0.06050713426924622 1294:0.06050142981612382 1295:0.06049572912547875 1296:0.06049003648135290 1297:0.06048434651460646 1298:0.06047866136125422 1299:0.06047298314687423 1300:0.06046730866220248 1301:0.06046163790269182 1302:0.06045596980126661 1303:0.06045031283768457 1304:0.06044465851976878 1305:0.06043901423379252 1306:0.06043337152870114 1307:0.06042773566452799 1308:0.06042210347740295 1309:0.06041647391404905 1310:0.06041084802021219 1311:0.06040522997426964 1312:0.06039962183853719 1313:0.06039401942486141 1314:0.06038842168462368 1315:0.06038282964631600 1316:0.06037725464588702 1317:0.06037168324654717 1318:0.06036611749719283 1319:0.06036055533765195 1320:0.06035499676362693 1321:0.06034943972497823 1322:0.06034388626590719 1323:0.06033834148172398 1324:0.06033280026200851 1325:0.06032726056865969 1326:0.06032172748046666 1327:0.06031619794270147 1328:0.06031068306678095 1329:0.06030516970330469 1330:0.06029966187887294 1331:0.06029415857852806 1332:0.06028866380421123 1333:0.06028317253325721 1334:0.06027768576047727 1335:0.06027220248150333 1336:0.06026672468431334 1337:0.06026125930617927 1338:0.06025580431755737 1339:0.06025035475580305 1340:0.06024490667236370 1341:0.06023946400304647 1342:0.06023402280857416 1343:0.06022858799644670 1344:0.06022315563530334 1345:0.06021772670213510 1346:0.06021230802790652 1347:0.06020689179078968 1348:0.06020147701501931 1349:0.06019606856321668 1350:0.06019066932843659 1351:0.06018527541595981 1352:0.06017988295332959 1353:0.06017449580061691 1354:0.06016911009437860 1355:0.06016372679742106 1356:0.06015835359684971 1357:0.06015298854257370 1358:0.06014763637703027 1359:0.06014228659170811 1360:0.06013694108583381 1361:0.06013159890398378 1362:0.06012625909411751 1363:0.06012092544210881 1364:0.06011559510028399 1365:0.06011026900875389 1366:0.06010494904512801 1367:0.06009963519586224 1368:0.06009432463341673 1369:0.06008901641641881 1370:0.06008371241638206 1371:0.06007841916359231 1372:0.06007312730953052 1373:0.06006784336834752 1374:0.06006256639010203 1375:0.06005729450680614 1376:0.06005202586091556 1377:0.06004676321733823 1378:0.06004150656293769 1379:0.06003625680281153 1380:0.06003101025410902 1381:0.06002576599707625 1382:0.06002053134407223 1383:0.06001529897275813 1384:0.06001007252505520 1385:0.06000484926171417 1386:0.05999962736203079 1387:0.05999440864172444 1388:0.05998919309720199 1389:0.05998398524989778 1390:0.05997878146875352 1391:0.05997358805101442 1392:0.05996839598209822 1393:0.05996321691689553 1394:0.05995804187444132 1395:0.05995286995674319 1396:0.05994770026889662 1397:0.05994253992627211 1398:0.05993738180391377 1399:0.05993222944581149 1400:0.05992708813763222 1401:0.05992195607561820 1402:0.05991682621036047 1403:0.05991170029486638 1404:0.05990657919902102 1405:0.05990145941616494 1406:0.05989634706151647 1407:0.05989123601560286 1408:0.05988613063362216 1409:0.05988103090351625 1410:0.05987594632926954 1411:0.05987086305001584 1412:0.05986578192780163 1413:0.05986070382262496 1414:0.05985563131149686 1415:0.05985056180770153 1416:0.05984549530792944 1417:0.05984043266557194 1418:0.05983537301962068 1419:0.05983031551196963 1420:0.05982525928653973 1421:0.05982020605068480 1422:0.05981516346398239 1423:0.05981012300190570 1424:0.05980509144448987 1425:0.05980006453926633 1426:0.05979504059030058 1427:0.05979001959436554 1428:0.05978500491520809 1429:0.05977999233828889 1430:0.05977498270179026 1431:0.05976997600251043 1432:0.05976497056108990 1433:0.05975997056355279 1434:0.05975497349268034 1435:0.05974998101432019 1436:0.05974498978710322 1437:0.05974000314243357 1438:0.05973501940979467 1439:0.05973004439360330 1440:0.05972507144843690 1441:0.05972010965800337 1442:0.05971514992794291 1443:0.05971019143338774 1444:0.05970523581952490 1445:0.05970028964805447 1446:0.05969534470565008 1447:0.05969040998260258 1448:0.05968547729852833 1449:0.05968054746642306 1450:0.05967561885568176 1451:0.05967069227937072 1452:0.05966576854867682 1453:0.05966085495495627 1454:0.05965594419234577 1455:0.05965103706524267 1456:0.05964613195570684 1457:0.05964122805601468 1458:0.05963633822834755 1459:0.05963145120562950 1460:0.05962656778484450 1461:0.05962169115379969 1462:0.05961681970260647 1463:0.05961194944529885 1464:0.05960708356092653 1465:0.05960221886790760 1466:0.05959735853855361 1467:0.05959250098222967 1468:0.05958764698687394 1469:0.05958279496773975 1470:0.05957794650204135 1471:0.05957310316032100 1472:0.05956826885835229 1473:0.05956343730114098 1474:0.05955861161554581 1475:0.05955378788414421 1476:0.05954897467894869 1477:0.05954416341816830 1478:0.05953935332337727 1479:0.05953454827509033 1480:0.05952974748900251 1481:0.05952495018482900 1482:0.05952015481302647 1483:0.05951536291585129 1484:0.05951057602910506 1485:0.05950579106681278 1486:0.05950101186907229 1487:0.05949623535692097 1488:0.05949146535488802 1489:0.05948669802855139 1490:0.05948193413826320 1491:0.05947717215490412 1492:0.05947241283889589 1493:0.05946765618746511 1494:0.05946290295781221 1495:0.05945815238635277 1496:0.05945340598638579 1497:0.05944866450732157 1498:0.05944392416249202 1499:0.05943918646231170 1500:0.05943445140404178 1501:0.05942972275009922 1502:0.05942499747994338 1503:0.05942027483848427 1504:0.05941555482300739 1505:0.05941083967700127 1506:0.05940612864380193 1507:0.05940141873112106 1508:0.05939671143111860 1509:0.05939201120864245 1510:0.05938731284528444 1511:0.05938261708242801 1512:0.05937792391740134 1513:0.05937323334753663 1514:0.05936854759003150 1515:0.05936386884879184 1516:0.05935919342397899 1517:0.05935452057556334 1518:0.05934985177035800 1519:0.05934518626829288 1520:0.05934052772474406 1521:0.05933587100907862 1522:0.05933121976889605 1523:0.05932657107973450 1524:0.05932192930122893 1525:0.05931729151455852 1526:0.05931265698908664 1527:0.05930802644361165 1528:0.05930340059333136 1529:0.05929877582529008 1530:0.05929415358070163 1531:0.05928953601559138 1532:0.05928492312085743 1533:0.05928032346819850 1534:0.05927572559931863 1535:0.05927113022559979 1536:0.05926653805621686 1537:0.05926194766522807 1538:0.05925735976187085 1539:0.05925277292389872 1540:0.05924818786060662 1541:0.05924360952911287 1542:0.05923903579256310 1543:0.05923446452658637 1544:0.05922989643338620 1545:0.05922533080504785 1546:0.05922076763910248 1547:0.05921620623051901 1548:0.05921165148809685 1549:0.05920709779652660 1550:0.05920254585543360 1551:0.05919799496406182 1552:0.05919345280224458 1553:0.05918891238245458 1554:0.05918437439944588 1555:0.05917983885079085 1556:0.05917530851022201 1557:0.05917078889603807 1558:0.05916627169709952 1559:0.05916175622188796 1560:0.05915724315786920 1561:0.05915273456529563 1562:0.05914822837693840 1563:0.05914372938641760 1564:0.05913923210640951 1565:0.05913473790228257 1566:0.05913024540529083 1567:0.05912575597810949 1568:0.05912126893584053 1569:0.05911678427613213 1570:0.05911230131683311 1571:0.05910782887215453 1572:0.05910335744247965 1573:0.05909888973082779 1574:0.05909442640557057 1575:0.05908996611223481 1576:0.05908550951927061 1577:0.05908105594954730 1578:0.05907661075686431 1579:0.05907216790428427 1580:0.05906772939140544 1581:0.05906329254551110 1582:0.05905886069344046 1583:0.05905443050360523 1584:0.05905000263898023 1585:0.05904557577020153 1586:0.05904115850561185 1587:0.05903674619274244 1588:0.05903233947883688 1589:0.05902793375158270 1590:0.05902353229503572 1591:0.05901913313484379 1592:0.05901473561356111 1593:0.05901034496289423 1594:0.05900595790282710 1595:0.05900157312480059 1596:0.05899719062661112 1597:0.05899281040605825 1598:0.05898843311063597 1599:0.05898405938533674 1600:0.05897968987208499 1601:0.05897532520917726 1602:0.05897096409661280 1603:0.05896660781648452 1604:0.05896225700059014 1605:0.05895791099506197 1606:0.05895356851064015 1607:0.05894923081889484 1608:0.05894489536027758 1609:0.05894056531580830 1610:0.05893623749692910 1611:0.05893191253637307 1612:0.05892758979651123 1613:0.05892327244067590 1614:0.05891896171769392 1615:0.05891465446118996 1616:0.05891034814919074 1617:0.05890604403958680 1618:0.05890174150185840 1619:0.05889743990677319 1620:0.05889313988195704 1621:0.05888884393477768 1622:0.05888454892756195 1623:0.05888025736361417 1624:0.05887596673784985 1625:0.05887167829974527 1626:0.05886739703450639 1627:0.05886311794771171 1628:0.05885883979392526 1629:0.05885456319436165 1630:0.05885029249098785 1631:0.05884602457507727 1632:0.05884176006137518 1633:0.05883749832746765 1634:0.05883324368155490 1635:0.05882898995849210 1636:0.05882473961603429 1637:0.05882049510058469 1638:0.05881625517446196 1639:0.05881201677602033 1640:0.05880777929372506 1641:0.05880354333757050 1642:0.05879931317115530 1643:0.05879508391752866 1644:0.05879085618445053 1645:0.05878663057845726 1646:0.05878240770434057 1647:0.05877818816463026 1648:0.05877396953345502 1649:0.05876976026828755 1650:0.05876555250998095 1651:0.05876135407085042 1652:0.05875715653144968 1653:0.05875296228799679
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2008-3-13 08:07:51 | 显示全部楼层
我觉得算这种东西只有理论意义 实际上, 参与的小素数不要太多, 否则不合算的 如果实现位运算, 乘到29就可以了 否则如果是双字, 乘的更少 要看综合效益 这算法存在拷贝的消耗 假设每次都计算N个数字的筛, 占字节<= N 则拷贝消耗是c0 * N (c0<= 2) 假设须剔除素数为p0, p1, ...pn, p0 >> 2 则, 运算工作量为 c1 * N / 2 * (1/p0 + 1/p1 ... + pn) (c1 > 10) 那么总工作量c0 * N + c1* N / 2 * (1/p0 + 1/p1 ... + pn) = N * (c0 + c1/2p0 + c1/2p1 ... + c1/2pn) 理论上可证明p0越大, 工作量越小 但素数乘积如果太大, 比如超过64位, 将存在高精度运算问题 除非使用X86-64CPU在64位操作环境下, 否则总会遇到高精度计算的麻烦 而且N必须被小于p0素数整除, 才能有高效的加法筛, 否则小素数还要筛一次 决定了p0不能太大, 否则N太大 一般建议不要超过32位, N要< 1M, 采用位运算的可适当大些
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2008-3-13 08:09:04 | 显示全部楼层
我给出的算法曾在查找很大的相邻素数差时使用过 速度达到1200亿/小时的筛速度
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2008-3-13 08:16:57 | 显示全部楼层
通常数学里面把无穷乘积中结果为0和无穷都表示发散。 将这个乘积取倒数,也就是 $1/(1-1/p_1)xx1/(1-1/p_2)xx...xx1/(1-1/p_n)xx...$ 将每一项按泰勒级数展开就成为 $(1+1/p_1+1/p_1^2+1/p_1^3+...)(1+1/p_2+1/p_2^2+...)...(1+1/p_n+1/p_n^2+...)...$ 现在将乘积式展开,我们可以由算术基本定理(唯一因子分解),知道,展开后,每个正整数正好在一项的分母中出现,也就是上面乘积就是 $1+1/2+1/3+...+1/n+...$ 我们知道这个级数是发散的,所以原来的无穷乘积也是发散的。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2008-3-13 16:36:41 | 显示全部楼层
谢谢无心人和mathe的回复,原来无穷乘积为0也表示为发散,学习了
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2008-3-13 16:55:39 | 显示全部楼层
无穷乘积为0也表示发散,数学里面有一个结论: 无穷乘积 $\prod a_i$ 同无穷级数 $\sum log(a_i)$ 同敛散
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2009-12-8 21:22:00 | 显示全部楼层
不知道有没有比筛法更好的求质数的方法
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

小黑屋|手机版|数学研发网 ( 苏ICP备07505100号 )

GMT+8, 2024-11-22 13:27 , Processed in 0.025632 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表