java学习日记-基础-列出2~100内的素数
素数的概念:一个整数如果只能整除1和它本身,那么这个整数就是一个素数
方法一:素数是除去能被2整除、3整除、5整除、7整除的整数,但包含2,3,5,7
public class Sushu {
public static void main(String[]args){
String str="2 3 5 7 ";
for(int i=2;i<=100;i++){
if(i%2==0||i%3==0||i%5==0||i%7==0 ){ //;逻辑判断,筛选
continue; //继续下一次循环
} else {
str+=i+" "; //筛选出需要的素数(不包含2 3 5 7 )
}
}
System.out.println("2~100内的素数是:"+str);
}
}
方法二:通过boolean筛选来判断素数
调用方法:如果一个整数数的不能整除2到这个数开平方区间的整数,那么这个数就是一个素数
public class Sushu {
public static boolean isPrime(int num) { //定义判断素数的方法isPrime()
for(int i = 2; i <= Math.sqrt(num); i++) { //程序默认2是素数,当j=2时,循环不执行
if(num % i == 0) { //Math.sqrt(num) 对num开平方
return false;
}
}
return true;
}
public static void main(String[] args) { //主方法
for(int j = 2; j <= 100; j++) {
if(Sushu.isPrime(j)) { //调用isPrime()方法,注意调用方法的格式
System.out.println(j + " is a prime");
}
}
}
}
方法三:更常规的算法for循环
public class Demo07 {
public static void main(String[] args) {
boolean isPrint = false;
for (int k = 2; k <= 100; k++) {
isPrint = true;//--布尔类型的变量通常以is开头。
for (int l = 2; l < k; l++) {
if(k % l == 0){//能否断定k就一定是素数。
isPrint = false;
break; //跳出当前循环
}
}
if(isPrint){
System.out.println(k);
}
}
}
}
这段代码我是大写的服!
写一个程序的过程: 需求: 问题是什么,想要实现什么? (面向对象)
分析: 要实现问题的解决要分几个步骤,每步之间的关系(有点面向过程的味道)
实现: 如何通过方法实现
代码体现: 代码精炼、逻辑感强、加注释、易维护
java学习日记-基础-列出2~100内的素数的更多相关文章
- Java学习日记基础篇(六)—— 抽象类、接口、final
抽象类 为什么要有抽象类? 因为父类方法有不确定性,我们在Animal中定义了一个方法,但是它会被子类的方法覆盖掉,我们就不知道这个方法原本是做什么的 public class test1 { pub ...
- Java学习日记——基础篇(一)常识
JAVA简介 Java的标准 Java是一种语言,一个平台包含JavaSE.JavaEE.JavaME三个版本 JavaSE标准版(属于Java的基础部分,可以开发C/S构架的桌面应用程序) Java ...
- Java学习日记基础篇(九) —— 集合框架,泛型,异常
集合框架 有事我们会需要一个能够动态的调整大小的数组,比如说要添加新员工但是数组已经满了,并且数组的大小是在定义的时候定死的,所以我们就需要一个能够动态调整大小的数组或者用链表解决,而java中提供了 ...
- Java学习日记基础(五)——类、对象之this、静态变量(类变量)、静态方法(类方法)、四大特征
this 赵本山问奥尼尔:“我的爸爸的爸爸是谁?” 奥尼尔:“不知道” 赵本山:“你傻啊,是我爷爷” 奥尼尔回去问科比:“我的爸爸的爸爸是谁?” 科比:“不知道” 奥尼尔:”你傻啊,是赵本山的爷爷“ ...
- Java学习日记基础篇(四)——类,对象之成员变量,成员方法,构造方法
面向对象(Object Oriented) 一.面向对象杂谈 面向对象(Object Oriented),我的翻译是以物体为目标的,就是说编程的时候是建立一个物体,然后对这个物体进行操作. Java语 ...
- Java学习日记——基础篇(三-上)基本语法之运算符和流程控制
运算符 算术运算符 听其名而知其意,就是用于计算的,java中常用的是: + 加 - 减 * 乘 / 除 % 取模,取余——%可以用来得到两个数相除的余数 小练习——写一个ja ...
- Java学习日记——基础篇(二)基本语法
变量 变量和常量是程序处理的两种基本数据对象,变量是程序的基本组成单位 变量的目的就是确定目标并提供存放空间 public class Hello { public static void main( ...
- Java学习日记基础篇(八) —— 二进制、位运算、位移运算
二进制 二进制是逢2进位的进位置,0,1是基本算符 原码反码补码 在基本数据类型那里,有详细解释 二进制的最高位数是符号位:0表示整数,1表示负数 正数的原码,反码,补码都一样 负数的反码 = 它的原 ...
- Java学习日记基础篇(七) —— 数组、排序
数组 为什么要有数组? 案例:一个养鸡场有六只鸡,他们的体重分别为3kg,5kg,1kg,3.4kg,2kg,50kg.请问这六只鸡的总体重和平均体重是多少? public class test5 { ...
随机推荐
- Java并发框架——AQS阻塞队列管理(二)——自旋锁优化
看Craig, Landin, and Hagersten发明的CLH锁如何优化同步带来的花销,其核心思想是:通过一定手段将所有线程对某一共享变量轮询竞争转化为一个线程队列且队列中的线程各自轮询自己的 ...
- (一一五)利用NSKeyedArchiver实现任意对象转为二进制
[应用背景] 在数据库中存储数据时,如果对象过于复杂,又不必要创建复杂的表,可以直接把整个对象转化为二进制存入数据库字段,然后取出后再还原即可. [实现方法] 在PHP中,使用序列化和反序列化可以实现 ...
- javascript之键盘事件
键盘事件包含onkeydown.onkeypress和onkeyup这三个事件 事件初始化 function keyDown(){} document.onkeydown = keyDown; ...
- UNIX网络编程——UDP缺乏流量控制(改进版)
现在我们查看无任何流量控制的UDP对数据报传输的影响.首先我们把dg_cli函数修改为发送固定数目的数据报,并不再从标准输入读.如下,它写2000个1400字节大小的UDP数据报给服务器. 客户端程序 ...
- Oracle 总账年终结算流程
1.Oracle 总账应用中年终结算流程包含在开启/关闭期间程序里.当用户开启新一年的第一个期间,开启/关闭期间程序中的"gloire" 流程会完成传送所有收入及支出(损益表 ...
- HashMap方法介绍
1. Map的遍历方式 (1) for each map.entrySet() Map<String, String> map = new HashMap<String, Strin ...
- J2EE学习从菜鸟变大鸟之六 EJB(Enterprise JavaBean)企业级Java组件
EJB (EnterpriseJavaBean)是J2EE的一部分,定义了一个用于开发基于组件的企业多重应用程序的标准.其特点包括网络服务支持和核心开发工具(SDK).其称为Java 企业Bean,是 ...
- java设计模式---桥接模式
桥接模式的目的是把抽象和具体实现分离,其uml类图如下所示: public interface SendMessage { abstract void send(String message,Stri ...
- 面试常用算法总结——排序算法(java版)
排序算法 重要性不言而喻,很多算法问题往往选择一个好的排序算法往往问题可以迎刃而解 1.冒泡算法 冒泡排序(Bubble Sort)也是一种简单直观的排序算法.它重复地走访过要排序的数列,一次比较两个 ...
- UITableViewBase UI_09
1.UITableView API文档总结: 1.UITableView的父类时,UIScrollView,所以它是可以滚动的,但是只能在竖直方向滚动. 2.UITableView是iOS中 ...