for循环输出素数探究【java】

一、判断953是不是为素数(质数)。

代码:

 1  /**
 2     判断953是不是为素数(质数)
 3     分析:
 4         素数指整数在一个大于1的自然数中,除了1和此整数自身外,没法被其他自然数整除的数。
 5         假设953是素数,则:
 6         953 % 2 !== 0
 7         953 % 3 !== 0
 8         953 % 4 !== 0
 9         ……
10         953 % 952 !== 0
11         反推得出,只要953被2~952之间的任何一个整数整除,则953不是素数。
12
13         除数从2开始到952按照整数依次递增,则用for循环表示为:
14             for(int i=2;i<953;i++){
15                 判断953能否被i整数
16                     如果能被整除,则953不是素数,结束循环,跳出去输出“953不是素数”
17                     如果不能被整除,则953是素数,结束循环,跳出去输出“953是素数”
18             }
19  */
20
21  public class IsPrime
22 {
23     public static void main(String[] args){
24
25         int num = 953;
26         boolean isPrime = true;   // 标记数字num默认为素数
27         for(int i=2;i<num;i++) {
28             if(num%i==0) {        // num能够被2~num-1之间的自然数整数
29                 isPrime = false;  // 标记数字num为非素数
30                 break;            // 结束循环
31             }
32         }
33
34         System.out.println(isPrime?num+"是素数":num+"不是素数");
35
36     }
37 }

代码结果显示:

二、列出1~100之间的所有素数

代码:

 1 /**
 2     列出1~100之间的所有素数
 3     分析:
 4         上面代码片段表示判断num为953的自然数是不是素数,
 5         假设num为937,则判断937是不是素数,
 6         假设num为933,则判断933是不是素数,
 7
 8         因此将num设置为一个变量,利用for循环进行从1~100进行递增,
 9         将上门的代码片段放入该for循环中,判断为素数就打印出来。
10
11         for(int num=2;num<=100;num++) {
12
13             判断num是不是素数的代码片段
14
15         }
16
17 */
18
19 public class IsPrime
20 {
21     public static void main(String[] args){
22
23         for(int num=2;num<=100;num++) {
24             boolean isPrime = true; // 标记数字num默认为素数
25             for(int i=2;i<num;i++) {
26                 if(num%i==0) {
27                     isPrime = false;
28                     break;
29                 }
30             }
31             if(isPrime) {
32                 System.out.print(num+" ");
33             }
34         }
35     }
36 }

代码解释说明:

代码结果显示:

三、列出1~100之间的所有素数,并每行显示5个数。

代码:

 1 /**
 2     列出1~100之间的所有素数,并每行显示5个数。
 3     分析:
 4         从上例代码中可以得到1~100之间的所有素数。
 5         要想每行显示5个数,就是要知道每次素数得出的时候,知道它是第几个出现的,然后进行累加
 6         当累加数字到5时,就换行。
 7
 8         因此需要用一个标记来记录每次素数输出的次数。
 9
10 */
11
12 public class IsPrime
13 {
14     public static void main(String[] args){
15
16         int count = 0; // 计数器,用来在每次素数打印时,记录次数。
17         for(int num=2;num<=100;num++) {
18             boolean isPrime = true; // 标记数字num默认为素数
19             for(int i=2;i<num;i++) {
20                 if(num%i==0) {
21                     isPrime = false;
22                     break;
23                 }
24             }
25             if(isPrime) {
26                 System.out.print(num+" ");
27                 count++; // 每打印一个素数就记录一次
28                 if(count%5==0) { // 每计数器累计记录5次,就换行一次。
29                     System.out.println();
30                 }
31             }
32         }
33     }
34 }

代码变形:计数器如果实现每5次累计之后,就置零也可以达到相应的计数效果。 将上述25行~31行代码进行置换以下代码,即可:

1 if(isPrime) {
2   System.out.print(num+" ");
3   count++; // 每打印一个素数就记录一次
4   if(count==5) { // 计数器累计到数字5时,就换行一次
5      System.out.println();
6      count = 0; // 计数器进行置零
7     }
8 }

代码结果显示:

四、输出9*9乘法表

代码:

 1 /**
 2     输出显示9*9乘法表
 3     1*1=1
 4     1*2=2 2*2=2
 5     1*3=3 2*3=6 3*3=9
 6     1*4=4 2*4=8 3*4=12 4*4=16
 7     ……
 8     1*9=9 2*9=18 ……        ……       9*9=81
 9
10     分析:按照每行和每列进行规律分析
11         - 表格共9行,
12         - 每第几个行输出需要共几个等式
13
14         恒等式格式为 i*j=c
15             · 每行i从1开始递增到j,表示为每第j行输出可以输出共i个等式
16                 因此使用for循环表示为:
17                 for(int i=1;i<=j;j++) {
18                     ……
19                 }
20             · 表示第j行
21                 for(int j=1;i<=9;j++) {
22                     输出一行  //该循环体执行一次,就换行一次。
23                 }
24         因此第一个for循环体需要在第二个for循环体之内。
25 */
26
27 public class Test03
28 {
29     public static void main(String[] args) {
30         for(int j=1;j<=9;j++) {
31             for(int i=1;i<=j;i++){
32                 System.out.print(i+"*"+j+"="+i*j+" "); // i从1~j循环显示,第j行需要显示1~j个恒等式
33             }
34             System.out.println();    // 每上面的i循环体执行一次结束,即该行显示完毕,就换行一次
35         }
36     }
37 }

代码结果显示:

时间: 2024-08-27 23:44:32

for循环输出素数探究【java】的相关文章

for循环输出空心菱形的形状【java】

使用for循环语句输出以下"空心菱形"效果: * * * * * * * * * * * * * * * * 建议优先参考笔者的另一篇文章:<for循环输出菱形的形状[java]> 代码: 1 /* 2 * 3 * * 4 * * 5 * * 6 * * 7 * * 8 * * 9 * * 10 * 11 12 分析: 13 上图形似于实心菱形 14 * 15 *** 16 ***** 17 ******* 18 ********* 19 ******* 20 *****

while循环输出如下语句: 2*5=10 4*10=40 6*15=90 …… ?*100=?

import java.util.Scanner; /** * @author 蓝色以太 while循环输出如下语句: 2*5=10 4*10=40 6*15=90 -- ?*100=? */ public class While { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("请输入层高:"); int num = sc.nextIn

假如数组接收到一个null,那么应该怎么循环输出。百度结果,都需要提前判断。否则出现空指针异常。。我还是想在数组中实现保存和输出null。

假如数组接收到一个null,那么应该怎么循环输出.因为foreach与obj.length都会报错.null不是对象,foreach中不能赋值? sp页面forEach一个存放对象的集合,怎么判断其中一个对象是否null? 2015-11-22 18:14lifeYesorno | 浏览 87 次 JSP编程语言 <c:forEach var="design" items="${designs }"></c:forEach>${designs

关于hasNextInt判断后无限循环输出else项的解决办法

话不多说,上来就是干! import java.util.Scanner; public class Test_hasNextInt { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub Scanner sc = new Scanner(System.in); //关于hasNextInt判断后无限循环输出else项的解决办法 String next;

深入理解和探究Java类加载机制-

深入理解和探究Java类加载机制---- 1.java.lang.ClassLoader类介绍 java.lang.ClassLoader类的基本职责就是根据一个指定的类的名称,找到或者生成其对应的字节代码,然后从这些字节代码中定义出一个Java 类,即 java.lang.Class类的一个实例. ClassLoader提供了一系列的方法,比较重要的方法如: 2.JVM中类加载器的树状层次结构 Java 中的类加载器大致可以分成两类,一类是系统提供的,另外一类则是由 Java 应用开发人员编写

For循环输出一个表格

<!-- 作者:郑伟钊 时间:2017-01-16 描述:通过一个循环的嵌套输出一个表格 --> <?php header("Content-type:text/html;charset=utf-8"); //如果不加这一行,输出的中文会乱码 echo '<table border="1px" width="800" align="center">' ; //设置表格的边框为1px,宽度为800(

asp.net 不用控件 循环输出数据库数据的方法

不使用什么repeater gridview之类的控件,怎么才能输出数据库的数据到一个table ,我用response.write在后台,拼接 table 代码可以输出 但总是在页面的最上面 , 是不是要在aspx页面相应位置用<% %> 循环输出 但又提示找不到我后台填充的DATASET,因为听说公司做asp.net是不用控件的,想知道他们是怎么做输出数据库表格的,还请高手帮帮忙,谢谢了. 不明白来问我后台代码public string test = "";    pr

php笔记三:循环的使用(循环输出表格)

循环有三种情况:1.for循环格式: for(循环变量的初始化:循环条件:循环变量的递增){循环体} 2.while循环格式: while(条件){ 循环体 } 3.do while循环格式: do { 循环体 } while(条件):注意:while语句后面的分号 注意:1).for循环适用于有规律的循环,用的比较多2).while和do while的区别:while循环可能一次也不执行,而do while循环至少执行一次 例子: <?php /** 循环输出一张表格,分别使用for循环.wh

java-第七章-数组-循环输出

public class A01 { public static void main(String[] args) { // TODO Auto-generated method stub String name [] = new String []{"Nike背包","Adidas运动衫","李宁运动鞋","Kappa外套","361°腰包"}; System.out.println("本次活动