求1到100之间的素数


需求:编程打印1100之间的所有素数

解析:何为素数:素数是除了1与本身之外没有其他约数的数(1除外)也称为质数

方法一:

 

package com.Carlyle;

public class DemoDay01 {

 

         public static void main(String[] args) {

                   // 打印1-100之间的所有素数

                   //素数是除了1与本身之外没有其他约数的数(1除外),即从2开始到i-1;

                   //标记是素数

                   boolean flag=true;

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

                            flag=true;

                            for(int j=2;j<i-1;j++){         

                                     if(i%j==0){

                                               flag=false;        

                                               break;

                                     }              

                            }

                            if(flag){

                                     System.out.println(i);

                            }

                   }

         }
}


方法二:

package com.Carlyle;

public class DemoDay02 {

public static boolean isPrime(int num) { 

                   

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

                     if(num % i == 0) {

           return false;

                            

          }

      }

     return true;

   }

         public static void main(String[] args) {

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

           if(DemoDay.isPrime(j)) {//调用isPrime判断是否为素数

               System.out.println(j + " 是素数");

                      }

                   }

                   }

 

         }

 

}


 

方法一和方法二的区别就在于执行效率的问题,方法二的执行效率明显比方法一高

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值