Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。
给你学习路线:html-css-js-jq-javase-数据库-jsp-servlet-Struts2-hibernate-mybatis-spring4-springmvc-ssh-ssm
小编推荐一个学Java的学习裙【 六五零,五五四,六零七 】,无论你是大牛还是小白,是想转行还是想入行都可以来了解一起进步一起学习!裙内有开发工具,很多干货和技术资料分享!
/*
* 问题:得到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
if(num%i==0){//==0为false的时候才不会进入
System.out.println(num+"不是质数!");
break;//这是在循环结构中,如果不使用break,会重复打印
}else{
//这里存在着一个问题,就是判断是质素的时候代码只走了一次
//这是不科学的,必须走完2——(sum-1),所以代码需要修正
//当num=9的时候9就被认定是质数,这是错误的
System.out.println(num+"是质数!");
小编推荐一个学Java的学习裙【 六五零,五五四,六零七 】,无论你是大牛还是小白,是想转行还是想入行都可以来了解一起进步一起学习!裙内有开发工具,很多干货和技术资料分享!
break;
}
}
*/
/*
* 代码修正
* */
//针对上面错误代码中else部分并非一次得结果的事实需要使用开关flag
boolean flag = true;//声明开关flag并初始化为true打开表示为是质数
/*
* 循环还可以优化
* java中提供了一个球平方根的方法,
* 根据经验,只要num对自己的平方根以内的数取余不得0就是质数
* */
//for(int i=2;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+" ");
if(count%5==0){
System.out.println();
}
}
/*
运行程序结果演示
小编推荐一个学Java的学习裙【 六五零,五五四,六零七 】,无论你是大牛还是小白,是想转行还是想入行都可以来了解一起进步一起学习!裙内有开发工具,很多干货和技术资料分享!
* 不是质素不需要输出,没要求
else{
System.out.print(num+"不是质数!"+" ");
}
*/
}
System.out.println("共有质数 "+count+" 个!");
}
}