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

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

代码:

/**
    判断953是不是为素数(质数)
    分析:
        素数指整数在一个大于1的自然数中,除了1和此整数自身外,没法被其他自然数整除的数。
        假设953是素数,则:
        953 % 2 !== 0
        953 % 3 !== 0
        953 % 4 !== 0
        ……
        953 % 952 !== 0
        反推得出,只要953被2~952之间的任何一个整数整除,则953不是素数。

        除数从2开始到952按照整数依次递增,则用for循环表示为:
            for(int i=2;i<953;i++){
                判断953能否被i整数
                    如果能被整除,则953不是素数,结束循环,跳出去输出“953不是素数”
                    如果不能被整除,则953是素数,结束循环,跳出去输出“953是素数”
            }
 */
 
 public class IsPrime
{
    public static void main(String[] args){

        int num = 953;
        boolean isPrime = true;   // 标记数字num默认为素数
        for(int i=2;i<num;i++) {
            if(num%i==0) {        // num能够被2~num-1之间的自然数整数
                isPrime = false;  // 标记数字num为非素数
                break;            // 结束循环
            }
        }

        System.out.println(isPrime?num+"是素数":num+"不是素数");    

    }
}

代码结果显示:

 

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

代码:

/**
    列出1~100之间的所有素数
    分析:
        上面代码片段表示判断num为953的自然数是不是素数,
        假设num为937,则判断937是不是素数,
        假设num为933,则判断933是不是素数,

        因此将num设置为一个变量,利用for循环进行从1~100进行递增,
        将上门的代码片段放入该for循环中,判断为素数就打印出来。

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

            判断num是不是素数的代码片段

        }

*/

public class IsPrime
{
    public static void main(String[] args){

        for(int num=2;num<=100;num++) {
            boolean isPrime = true; // 标记数字num默认为素数
            for(int i=2;i<num;i++) {
                if(num%i==0) {
                    isPrime = false;
                    break;
                }
            }
            if(isPrime) {
                System.out.print(num+" ");
            }
        }
    }
}

代码解释说明:

代码结果显示:

 

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

代码:

/**
    列出1~100之间的所有素数,并每行显示5个数。
    分析:
        从上例代码中可以得到1~100之间的所有素数。
        要想每行显示5个数,就是要知道每次素数得出的时候,知道它是第几个出现的,然后进行累加
        当累加数字到5时,就换行。

        因此需要用一个标记来记录每次素数输出的次数。

*/

public class IsPrime
{
    public static void main(String[] args){
        
        int count = 0; // 计数器,用来在每次素数打印时,记录次数。
        for(int num=2;num<=100;num++) {
            boolean isPrime = true; // 标记数字num默认为素数
            for(int i=2;i<num;i++) {
                if(num%i==0) {
                    isPrime = false;
                    break;
                }
            }
            if(isPrime) {
                System.out.print(num+" ");
                count++; // 每打印一个素数就记录一次
                if(count%5==0) { // 每计数器累计记录5次,就换行一次。
                    System.out.println();
                }
            }
        }
    }
}

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

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

代码结果显示:

四、输出9*9乘法表

代码:

/**
    输出显示9*9乘法表
    1*1=1
    1*2=2 2*2=2
    1*3=3 2*3=6 3*3=9
    1*4=4 2*4=8 3*4=12 4*4=16
    ……
    1*9=9 2*9=18 ……        ……       9*9=81

    分析:按照每行和每列进行规律分析
        - 表格共9行,
        - 每第几个行输出需要共几个等式

        恒等式格式为 i*j=c
            · 每行i从1开始递增到j,表示为每第j行输出可以输出共i个等式
                因此使用for循环表示为:
                for(int i=1;i<=j;j++) {
                    ……
                }
            · 表示第j行
                for(int j=1;i<=9;j++) {
                    输出一行  //该循环体执行一次,就换行一次。
                }
        因此第一个for循环体需要在第二个for循环体之内。
*/

public class Test03
{
    public static void main(String[] args) {
        for(int j=1;j<=9;j++) {
            for(int i=1;i<=j;i++){
                System.out.print(i+"*"+j+"="+i*j+" "); // i从1~j循环显示,第j行需要显示1~j个恒等式
            }
            System.out.println();    // 每上面的i循环体执行一次结束,即该行显示完毕,就换行一次
        }
    }
}

代码结果显示:

  • 13
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值