重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
输出前500个素数
创新互联公司成立于2013年,先为宁安等服务建站,宁安等地企业,进行企业商务咨询服务。为宁安企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。
其中
for
(int
i
=
2;
i
=
math.sqrt(k);
i++)
从2开始,1不用比较,如果还有另外一个不是他本身的数可以整除他,那他就不是素数
math.sqrt(k)
是原先一个人提出的算法,加大效率的,你可以测试看看
已经按照你的要求用到了while和if
else
下面的朋友···别人说要用什么写就用什么写···有时候按要求去就好了
class
a
{
public
static
void
main(string
arg[])
{
int
num
=
0;
int
k=2;
while
(num
500)
{
if
(isprime(k))
{
system.out.print(k
+
"
");
num++;
}
k++;
}
}
public
static
boolean
isprime(int
k)
{
if
(k
==
2)
return
true;
else
if
(k
%
2
==
0)
return
false;
else
{
for
(int
i
=
2;
i
=
math.sqrt(k);
i++)
if
(k
%
i
==
0)
return
false;
return
true;
}
}
}
for(int i =2;i=100;i++)
{
flag=true ; //每次都要有这个初值,如果不是,则flag会变成false
for(int j=2;ji;j++)
{
if(i%j==0)
{
flag =false;
break;
}
}
if(flag)
{
icount++;
System.out.println(i+"是素数!");
}
}
楼主的程序略有误,下为修改后的代码
public class Test {
public static void main(String[] args) {
int i =1,j =2;
for(i=1;i=100;i++) {
for(j=2;j=i;j++){
//素数是指除了1和自身外不能被任何数整除的数
//因此遍历每一个小于i大于2的整数j
if(i%j==0)
//如果i能够被j整除
if(i==j)
//如果当i等于j的时候则满足i是素数的条件,即只能被1(
//j是从2计数的)和自身整除,因此i是素数
System.out.println(i +"是素数");
else
//在如果存在一个小于i大于2的整数j可以整除i,则i必不是
//素数,因此break操作.
break;//如果i可以被j整除且j不等于i,则跳出循环
}
}
}
}
亲测可用..
素数又称质数,有无限个。素数定义为在大于1的整数中,除了1和它本身以外不再有其他因数的数称为素数。
java程序找出2-100之间的所有素数,代码如下:
public void findPrimeNumber(){
//存放素数集合
ListInteger lists=new ArrayListInteger();
//遍历2-100
for(int x=2;x100;x++){
//标志是否为素数,默认是true
boolean flag=true;
//循环x除以(x/2)的数,能整除则不是是素数(不包含2)
for(int y=2;yx/2;y++){
if(x%y==0){
//能整除,则把标志设置为false,不是素数
flag=false;
break;
}
}
if(flag){
//flag还是true,则是素数
lists.add(x);
}
}
System.out.println("2-100的素数集合:"+lists);
}
结果:
2-100的素数集合:[2, 3, 4, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97]