下面是我用JavaScript写的素数函数,供参考,大同小异
成都创新互联公司专注于企业全网整合营销推广、网站重做改版、阜宁网站定制设计、自适应品牌网站建设、H5网站设计、商城网站建设、集团公司官网建设、外贸网站制作、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为阜宁等各大城市提供网站开发制作服务。
PrimeA=function(n,nth){/* 小于n的素数表
参数nth 指定返回第n个素数
*/
//var t0=Time.now5();
/*
方法1:利用isPrime 废弃!
var t=[];
for(var i=2;in+1;i++){
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 n2){
return []
}
if(n=5000 !nth){
for(var i=0;i100;i++){
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=5001;i=m;i+=2){
var i=5001;
while(i){
var t=Math.floor(Math.sqrt(i)), pl=p.length;
for(var j=0;jpl;j++){//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测试
}
下面是用Java编写的程序,可以实现输出1到100之间的所有素数:
Copy codepublic class Main {
public static void main(String[] args) {
for (int i = 2; i = 100; i++) {
// 判断i是否为素数
boolean isPrime = true;
for (int j = 2; j i; j++) {
if (i % j == 0) {
// i被j整除,说明i不是素数
isPrime = false;
break;
}
}
if (isPrime) {
// i是素数,输出i
System.out.println(i);
}
}
}
}
这个程序使用了两层循环,外层循环从2开始遍历1到100之间的数字,内层循环用来判断当前数字是否为素数。如果是素数,就输出这个数字。
希望这个程序能帮到你。
import java.io.*;
class prime{
private int num;
static boolean isprime(int num){
if(num=1) return false;
int i;
for(i=2;i=num/2;i++)
if(num%i==0) return false;
return true;
}
}
class Main {
public static void main (String[] args)
throws IOException{
int num=0;
String data;
BufferedReader br = new
BufferedReader(new
InputStreamReader(System.in));
System.out.print( "请输入一个整数:" );
data=br.readLine ();
try{
num = Integer.parseInt (data);
}
catch(NumberFormatException e){}
if(prime.isprime (num)){
System.out.println ( num+"是素数!" );
}
else
System.out.println ( num+"不是素数!" );
}
}
祝君好运啊