十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
输出前500个素数
10年积累的网站设计、做网站经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站制作后付款的网站建设流程,更有靖宇免费网站建设让你可以放心的选择与我们合作。
其中
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;
}
}
}
质数又称素数。一个大于1的自然数,如果除了1和它自身外,不能被其他自然数整除的数;否则称为合数。根据算术基本定理,每一个比1大的整数,要么本身是一个质数,要么可以写成一系列质数的乘积;而且如果不考虑这些质数在乘积中的顺序,那么写出来的形式是唯一的。下面是一个java求100之内的素数简单示例。
public class test {
public static void main(String[] args) {
int i,n,k=0;
for (n = 3; n=100; n++) { //3~100的所有数
i=2;
while (in) {
if (n%i==0) break; //若能整除说明n不是素数,跳出当前循环
i++;
}
if (i==n) { //如果i==n则说明n不能被2~n-1整除,是素数
k++; //统计输出数的个数
System.out.print(i+ "\t ");
if (k %6==0) //每输出5个则换行
System.out.println();
}
}
}
}
一般的求素数算法:
1234567891011121314151617181920212223242526
publicclassPrime
{
/*
*
* 一般求素数方法
*
* @param args
*/
publicstaticvoidmain(String[]args){for(inti=2; i100; i++)
{intj;for(j=2; j(int)(Math.sqrt(i)+1); j++)
{if(i%j==0){break;}} if(j(int)Math.sqrt(i)){System.out.print(i+" ");}} } }
筛法求素数:
12345678910111213141516171819202122232425262728293031
publicclassPrime2
{
/*
*
* 筛法求素数
*
* @param args
*/publicstaticvoidmain(String[]args)
{// TODO Auto-generated method stubintn=100;int[]array=newint[n];for(inti=2; i{if(array[i]!=0)
{intj, temp;}}}