首页 > 百科知识 正文

Java开发新手找出100以内的全部质数(java中如何获得100内的质数)

时间:2023-11-21 11:35:14 阅读:407 作者:對訫事说谎

/*

* 问题:得到100以内的所有质数

* */

/*

* 分析:

* 什么是质数?

* 质数就是只能被1和本身整除的数

* 即primenumber%2/3/4……/primenumber-1--------->得到的结果全部不为0

*

* 第一步:假设先得到一个数num,对这个数进行判断

* 第二步:判断这个数是不是质数

* if(primenumber%i){s.o.p();}//i是变化的用for循环

*

* 第三步:

* */

package day06;

public class PrimeNumber {

/**

* @param args

*/

public static void main(String[] args) {

// TODO Auto-generated method stub

//int num=9;//假设现在只是在判断7是不是质数

/*

* 因为求的是100以内的所有实数,所以需要改变num的值,

* 用for循环

* */

int count=0;//计数器

System.out.println("100以内的质数分别是:");

for(int num=2;num<=100;num ){

/*

for(int i=2;i<num;i ){

if(num%i==0){//==0为false的时候才不会进入

System.out.println(num "不是质数!");

break;//这是在循环结构中,如果不使用break,会重复打印

}else{

//这里存在着一个问题,就是判断是质素的时候代码只走了一次

//这是不科学的,必须走完2——(sum-1),所以代码需要修正

//当num=9的时候9就被认定是质数,这是错误的

System.out.println(num "是质数!");

break;

}

}

*/

/*

* 代码修正

* */

//针对上面错误代码中else部分并非一次得结果的事实需要使用开关flag

boolean flag = true;//声明开关flag并初始化为true打开表示为是质数

/*

* 循环还可以优化

* Java中提供了一个球平方根的方法,

* 根据经验,只要num对自己的平方根以内的数取余不得0就是质数

* */

//for(int i=2;i<num;i ){

//修改为:

for(int i=2;i<=Math.sqrt(num);i ){

if(num%i==0){

flag=false;//开关关闭判断为不是质数

break;

}

}

if(flag){

//输出还可以优化,因为这样输出太长了,可以优化为每行输出5个数

//需要一个计数器count

count ;//找到一个质数就 1

System.out.print(num "\t");

if(count%5==0){

System.out.println();

}

}

/*

* 不是质素不需要输出,没要求

else{

System.out.print(num "不是质数!" "\t");

}

*/

}

System.out.println("共有质数 " count " 个!");

}

}

Java开发新手找出100以内的全部质数(java中如何获得100内的质数)-第1张

运行程序结果演示

版权声明:该问答观点仅代表作者本人。如有侵犯您版权权利请告知 cpumjj@hotmail.com,我们将尽快删除相关内容。