Java编程:实现1-100内素数输出,每行展示5个
求一个用java编写的1到100内的素数,并且每行输出5个素数
publicclassTest{
publicstaticvoidmain(String[]args){
inti,count=0;for(i=2;i<=100;i++){
if(erPrimeNumber(i)==true){
count++;
System.out.printf("%6d",i);
如果(计数%5==0){
System.out.println();}}}//判断一个数是否为素数如果是则返回true,否则返回falsepublicstaticbooleanisPrimeNumber(intnum){
intk=(int)Math.sqrt(num);if(num==2){
returntrue;for(inti=2;i<=k;i++)
if(num%i==0)
returnfalse;
returntrue;}}
扩展:
素数也称为素数。
大于1且不能被除1以外的任何自然数整除且其本身称为素数,否则称为合数。
素数的数量是无限的。
欧几里得的《几何原本》里有一个经典的证明。
它使用一种常见的证明方法:反证法。
具体证明如下:假设素数只有有限个,从小到大排列如p1,p2,...,pn。
假设N=p1×p2×……×pn,则
是素数或非素数。
如果
是素数,
必须大于p1,p2,。
.,pn,所以它不在假设的素数集中。
如果是合数,因为任何合数都可以分解为几个素数的乘积且N和N+1的最大公约数为1,所以不可能是p1,p2,..,pn是可整除的,所以分解合数得到的素因数肯定不在假设的素数集合中。
因此,无论该数是素数还是合数,都意味着除了假定的有限个素数之外,还存在其他素数。
所以原来的假设不成立。
换句话说,素数有无穷多个。
其他数学家给出了有些不同的证明。
欧拉用黎曼函数证明了所有素数的倒数之和发散,恩斯特·库默的证明更加简洁,哈利·弗斯滕伯格用拓扑学来证明。
用java的双for循环写一个求1-100之间的素数
importjava.util.Scanner;publicclassPrime{privateintstartNum=0;privateintendNum=0;privateScannerscanner=null;publicPrime(){scanner=newScanner(System.in);System.out.println(请输入“[a-b]区间请输入”);}privatevoidgetNum(){System.out.print("a:请输入");startNum=scanner.nextInt();System.out.print("请输入b:");endNum=scanner.nextInt();}privatevoidprintPrime(){System.out.println(""+开始编号+”和“+结束编号+”输出以下之间的质数:");for(inti=startNum;i<=endNum;i++){ints=0;for(intj=2;j<9 j++){if(i%j!=0||(i i%2!=0)){s i;继续;}s=0;break;}if(s! publicstaticvoidmain(String[]args){Primeprime=newPrime();prime.getNum();prime.printPrime();}}///////////////////////////////////////////////您可以输出任何范围内的素数。>我测试了一下,没有发现问题在Java编写程序输出1到100之间的所有素数?
下面是一个用Java编写的程序,可以返回1到100之间的所有素数:CopycodepublicclassMain{publicstaticvoidmain(String[]args){for(inti=2;i<=100;i++){//判断i是否是素数numberbooleanisPrime=true;for(intj=2;j外层循环从2开始,遍历1到100之间的数字。内层循环用于确定是否。
当前数字是质数。
如果是质数,则返回该数。
希望这个应用程序可以帮助您。