import java.math.*;
.......
int i;
i=3;//把i赋值先
BigInteger bigint=new BigInteger(String.valueOf(i));//是否是素数,就看此处的i
boolean isPrime=bigint.isProbablePrime(i);//这里的i可以随意填,只要是int就行
.......
int i;
i=3;//把i赋值先
BigInteger bigint=new BigInteger(String.valueOf(i));//是否是素数,就看此处的i
boolean isPrime=bigint.isProbablePrime(i);//这里的i可以随意填,只要是int就行
解决方案 »
- 遇到了关于这个循环返回值的困惑,高手帮忙看看啊
- 编译后还需要引用的包文件么?
- 第三届ITAT考试题 小弟从小语文就笨得很 题意有些不明白 希望大家帮帮忙啊!!!!???
- 怎样使JTabbedPane的每一个选项可关闭呢?像netbean那样?
- QQ那样的界面用java该怎么写
- 如何用JAVA生成数据库表记录的唯一标识符作为主键?不用自增长字段。
- 请问哪里有eclipse 下载?
- JAVA基础问题
- JBUILDER的问题,关于使用queryDataSet的问题。
- 将字符串转时间,所得时间不对
- 请教:如何实现点击一个image后,该image在Applet中移动位置?有示例代码吗?谢谢!!!
- VisualAge好用还是jbuilder好用,请高手谈谈各自的优缺点。60分送上
但我试过如果查1到10000的数据中有哪些是素数就会死机!
我根据一个C语言改编成以下的程序就不会有这种情况!
是为什么呢? Vector v=new Vector();
v.add(new Integer(2));
v.add(new Integer(3));
for(int i = 1; i <=10000; i++ )
{
boolean b = true;
for(int j = 0; j<v.size(); j++)
{
int temp=((Integer)v.get(j)).intValue();
if ( (i==2) || (i==3) )
{
break;
}
if( (i % temp==0) || (i==1) )
{
b = false;
break;
}
}
if( b==true )
{
String s=String.valueOf(i);
System.out.println(s);
}
}
import java.util.*;
public class PrimeNumber {
private Vector primeVec;
final static int FIRST_PRIMENUMBER=2;
public PrimeNumber() {
primeVec=new Vector();
primeVec.addElement(new Integer(2));
}
public PrimeNumber(Vector vec)
{
this.primeVec=vec;
this.primeVec.addElement(new Integer(2));
}
boolean isPrimeNum(int num)
{
if(num==2)
return true;
int lastPrime;
int length=primeVec.size();
for(int i=0;i<length;i++)
{
lastPrime=((Integer)primeVec.elementAt(i)).intValue();
if(num%lastPrime==0)
{
return false;
}
else
continue;
}
return true;
}
}
if(num==1)
return false;
if(num<2)
return false;
{
if(num<2)
return false;
if(num==2)
return true;
if(num%2==0)
return false;
double sqrtNum=Math.sqrt((double)num);
for(int i=3;i<=sqrtNum;i=i+2)
{
if(num%i==0)
return false;
}
return true;
}
{
if(num<2)
return false;
if(num==2)
return true;
if(num%2==0)
return false;
double sqrtNum=Math.sqrt((double)num);
for(int i=3;i<=sqrtNum;i=i+2)
{
if(num%i==0)
return false;
}
return true;
}
但是为什么要用
double sqrtNum=Math.sqrt((double)num);
这句呢?