求一个用java编写的1到100内的素数,并且每行输出5个素数

要简明的易懂的

public class Test {


public static void main(String[] args) {

int i, count = 0;

for(i=2; i<=100; i++){

if(isPrimeNumber(i) == true){


count++;


System.out.printf("%6d", i);


if(count%5 == 0){


System.out.println();
}
}
}

//判断一个数是否是素数,若是,返回true,否则返回false
public static boolean isPrimeNumber(int num){


int k = (int) Math.sqrt(num);

if(num == 2){

return true;

for(int i=2; i<=k; i++)

if(num%i == 0)


return false;


return true;
}
}

扩展:

质数又称素数。一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数;否则称为合数。

质数的个数是无穷的。欧几里得的《几何原本》中有一个经典的证明。它使用了证明常用的方法:反证法。具体证明如下:假设质数只有有限的n个,从小到大依次排列为p1,p2,……,pn,设N=p1×p2×……×pn,那么,

是素数或者不是素数。

如果

为素数,则

要大于p1,p2,……,pn,所以它不在那些假设的素数集合中。

    如果 为合数,因为任何一个合数都可以分解为几个素数的积;而N和N+1的最大公约数是1,所以不可能被p1,p2,……,pn整除,所以该合数分解得到的素因数肯定不在假设的素数集合中。因此无论该数是素数还是合数,都意味着在假设的有限个素数之外还存在着其他素数。所以原先的假设不成立。也就是说,素数有无穷多个。

    其他数学家给出了一些不同的证明。欧拉利用黎曼函数证明了全部素数的倒数之和是发散的,恩斯特·库默的证明更为简洁,哈里·弗斯滕伯格则用拓扑学加以证明。

温馨提示:内容为网友见解,仅供参考
第1个回答  2012-03-08
for (int i=1;i<=100;i++)
{
int count=0;
for (int j=1;j<=i;j++)
{
if(i%j==0){
count++;
}
}
if (count==2)
{
System.out.println(i+"是素数");
}
}
第2个回答  推荐于2017-10-03
Java程序:

public class Test {
public static void main(String[] args) {
int i, count = 0;

for(i=2; i<=100; i++){
if(isPrimeNumber(i) == true){
count++;
System.out.printf("%6d", i);
if(count%5 == 0)
System.out.println();
}
}
}

//判断一个数是否是素数,若是,返回true,否则返回false
public static boolean isPrimeNumber(int num){
int k = (int) Math.sqrt(num);

if(num == 2)
return true;

for(int i=2; i<=k; i++)
if(num%i == 0)
return false;
return true;
}
}

运行测试:

2 3 5 7 11
13 17 19 23 29
31 37 41 43 47
53 59 61 67 71
73 79 83 89 97本回答被提问者采纳
相似回答