下面是我用JavaScript写的素数函数,供参考,大同小异
PrimeA=function(n,nth){/* 小于n的素数表参数nth 指定返回第n个素数
*/
//var t0=Time.now5()
/*
方法1:利用isPrime 废弃!
var t=[]
for(var i=2i<n+1i++){
if(isPrime(i)){
t.push(i)
}
}
consolelog('方法1:耗时:'+(+Time.now5()-(+t0)))
return t
*/
//方法2:利用筛法
var p=[2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59]//自己往后补充,越多越好,可以加快检测小素数的效率
if(nth && n<=669){
return p[n-1]
}
if(!nth && n<2){
return []
}
if(n<=5000 && !nth){
for(var i=0i<100i++){
var j=p.indexOf(n-i)
if(j>-1){return p.slice(0,j+1)}
}
return p
}
var m=nth?Math.ceil(n*Math.log(n)+1000):n //pn ∼ nln(n)
// for(var i=5001i<=mi+=2){
var i=5001
while(i){
var t=Math.floor(Math.sqrt(i)), pl=p.length
for(var j=0j<plj++){//p.length
if(i%p[j] == 0){
break
}else if(p[j+1]>t){
p.push(i)
if(nth && pl==n-1){
return i
}
break
}
}
if(!nth && i>=n-1){
return p
}
i+=2
}
return p
//方法3:Wilson测试
}
public static void main(String[] args) {
int count=0
int prime=1
while(count<100){
while(true){
prime++
if(isPrime(prime)){
System.out.print(prime+"||")
count++
if(count%10==0){
System.out.println(" ")
break
}
}
}
}
}
public static boolean isPrime(int n){
for(int i=2i<ni++){
if(n%i==0){
return false
}
}
if(n==1){
return false
}
return true
}
1、Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。
2、Java是由Sun Microsystems公司推出的Java面向对象程序设计语言(以下简称Java语言)和Java平台的总称。由James Gosling和同事们共同研发,并在1995年正式推出。Java最初被称为Oak,是1991年为消费类电子产品的嵌入式芯片而设计的。1995年更名为Java,并重新设计用于开发Internet应用程序。
3、用Java实现的HotJava浏览器(支持Java applet)显示了Java的魅力:跨平台、动态Web、Internet计算。从此,Java被广泛接受并推动了Web的迅速发展,常用的浏览器均支持Javaapplet。另一方面,Java技术也不断更新。Java自面世后就非常流行,发展迅速,对C++语言形成有力冲击。在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。2010年Oracle公司收购Sun Microsystems。