JS实例教程:用6N±1法求素数

用6N±1法求素数
任何一个自然数,总可以表示成为如下的形式之一:
6N,6N+1,6N+2,6N+3,6N+4,6N+5 (N=0,1,2,…)
显然,当N≥1时,6N,6N+2,6N+3,6N+4都不是素数,只有形如6N+1和6N+5的自然数有可能是素数。所以,除了2和3之外,所有的素数都可以表示成6N±1的形式(N为自然数)。
根据上述分析,我们可以构造另一面筛子,只对形如6 N±1的自然数进行筛选,这样就可以大大减少筛选的次数,从而进一步提高程序的运行效率和速度。

以下代码需要自然数大于10
function fn(num){
var arr = [];
arr.push(2);
arr.push(3);
arr.push(5);
arr.push(7);
var t = 0;
for (var i = 3; t < num; i = i + 3) {
for (var j = 0; j < 2; j++) {
t = 2 * (i + j) - 1;
if (t < num && (t % 5 == 0 ? false : t % 7 == 0 ? false : true)) {
arr.push(t);
}
}
}
return arr.join(” “);
}
document.write(fn(1000));

各位大侠有没有更高效的方法或以上代码有不对的地方,请指出。

时间: 2024-08-01 02:28:40

JS实例教程:用6N±1法求素数的相关文章

JS 用6N&amp;#177;1法求素数 实例教程_javascript技巧

用6N±1法求素数 任何一个自然数,总可以表示成为如下的形式之一: 6N,6N+1,6N+2,6N+3,6N+4,6N+5 (N=0,1,2,-) 显然,当N≥1时,6N,6N+2,6N+3,6N+4都不是素数,只有形如6N+1和6N+5的自然数有可能是素数.所以,除了2和3之外,所有的素数都可以表示成6N±1的形式(N为自然数). 根据上述分析,我们可以构造另一面筛子,只对形如6 N±1的自然数进行筛选,这样就可以大大减少筛选的次数,从而进一步提高程序的运行效率和速度. 以下代码需要自然数大于

app-Android App开发完整实例教程谁有?急求大神大神指导,新手求学。非常感谢

问题描述 Android App开发完整实例教程谁有?急求大神大神指导,新手求学.非常感谢 Android App开发完整实例教程谁有?急求大神大神指导,新手求学.非常感谢. 解决方案 先看一遍书吧,可以参考<精通Android4编程>或者<疯狂Android讲义>,然后可以上http://edu.csdn.net/?ref=toolbar CSDN学院看看. 解决方案二: 我之前博客分享的半成品:http://blog.csdn.net/gao_chun/article/deta

js实例教程:JavaScript Events 事件使用方法

js实例教程:JavaScript Events 方法 事件的行动,可以检测到了JavaScript . 活动 通过使用JavaScript ,我们有能力创建动态网页.事件的行动,可以检测到了JavaScript . 每个要素在网页上有一定的事件可以触发JavaScript函数.例如,我们可以使用onClick事件的一个按钮的内容表明,一个函数将运行当使用者按下按钮.我们确定了事件中的HTML标记. 事件的例子: 点击鼠标 一个网页或图片加载 鼠标过热点网页上 选择一个输入框在一个HTML表单

Svg.js实例教程及使用手册详解(一)_javascript技巧

什么是SVG? SVG 指可伸缩矢量图形 (Scalable Vector Graphics) SVG 用来定义用于网络的基于矢量的图形 SVG 使用 XML 格式定义图形 SVG 图像在放大或改变尺寸的情况下其图形质量不会有所损失 SVG 是万维网联盟的标准 SVG 与诸如 DOM 和 XSL 之类的 W3C 标准是一个整体 简介: SVG.js是一个轻量级的JavaScript库,允许你轻松操作SVG和定义动画. SVG(Scalable Vector Graphics,可缩放矢量图形)是基

JS实例教程:当心JavaScript代码陷阱

下面这段代码,你知道有哪些错误吗: var g_bar = "bar"; function foo(container, config) { var container = container document, name = config.name "无名氏", isLive = config.isLive true; var g_bar = g_bar ""; if(g_foo) { /* your code */ } } foo(docum

JS实例教程:制作图片放大特效

效果: 运行代码框<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="

java递归法求字符串逆序_java

本文实例讲述了java递归法求字符串逆序的方法.分享给大家供大家参考.具体实现方法如下: public static String reverseString(String x) { if(x==null || x.length()<2) return x; return reverseString(x.substring(1,x.length()))+ x.charAt(0); } 希望本文所述对大家的java程序设计有所帮助. 以上是小编为您精心准备的的内容,在的博客.问答.公众号.人物.课

js数组使用方法与实例教程

js数组使用方法与实例教程 定义数组 数组对象用来在单独的变量名中存储一系列的值. 我们使用关键词 new 来创建数组对象.下面的代码定义了一个名为 myArray 的数组对象: var myArray=new Array()有两种向数组赋值的方法(你可以添加任意多的值,就像你可以定义你需要的任意多的变量一样). 1: var mycars=new Array() mycars[0]="Saab" mycars[1]="Volvo" mycars[2]="

js split 字符分割函数实例教程

js split 字符分割函数实例教程 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-