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

本文介绍了如何使用Java编写程序找出1到100内的素数,每行输出5个,并讲解了质数的定义和欧几里得关于素数无穷性的经典证明。
摘要由CSDN通过智能技术生成

展开全部

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;

}

}

10c2a03a3bc8704dcdcae8f12fa0e6c4.png

扩展:

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

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

ffc03522c89ac677dce6d50c19617cc0.png

是素数或者不是素数。

如果

98eced26ff1e774b780de10fbc08864f.png

为素数,则

f8fcc2d510d63fd0b0cc88ba7d450ede.png

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

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

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值