当前位置:首页 > 通信资讯 > 正文
目录
  • java判断一个数是否是素数(质数)
    • 质数(prime number)又称素数,有无限个
    • 思路
  • java 求1-100之间的质数
    • 质数定义:
    • 1、质数实例一
    • 2、质数实例二
    • 3、质数实例三
    • 4、质数实例四
    • 5、质数实例五
    • 6、质数实例六

java判断一个数是否是素数(质数)

质数(prime number)又称素数,有无限个

质数定义为在大于1的自然数中,除了1和它本身以外不再有其他因数,这样的数称为质数。

?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 import java.util.Scanner; public class TestWork { public static void main(String[] args) { boolean isPrime = true; Scanner sc = new Scanner(System.in); System.out.println("请输入一个正整数"); int num = sc.nextInt(); if (num > 0) { int k = (int) Math.sqrt(num);//k为num的正平方根,取整数 for (int i = 2; i <= k; i++) { if (num % i == 0) { isPrime = false;//不是素数 break; } } } if (isPrime) { System.out.println(num + "是素数"); } else { System.out.println(num + "不是素数"); } } }

输出1~1000之间的素数

思路

偶数肯定不是素数,所以递增的时候可以以奇数的形式递增,再在奇数中去掉非质数的数。

?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 public class TestWork { public static void main(String[] args) { boolean isPrime = true; int PrimeCount=0; for (int i = 3; i <= 1000; i+=2) { int k = (int) Math.sqrt(i);//k为num的正平方根,取整数 isPrime = true; for (int j = 2; j <= k; j++) { if (i % j == 0) { isPrime = false;//不是素数 break; } } if (isPrime) { PrimeCount++; System.out.print(i+"\t"); if(PrimeCount%5==0){ System.out.println(); } } } } }

java 求1-100之间的质数

质数定义:

质数又称素数。一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数;否则称为合数。

如:2,3,5,7,11…

1、质数实例一

?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 //1-100之间的质数--------1 public class PrimeNumber { public static void main(String[] args) { for(int i=2;i<=100;i++) { boolean flag=true; for(int j=2;j<i;j++) { if(i%j == 0) { flag=false; break; } } if(flag) { System.out.println("质数:i= "+i); } } } }

2、质数实例二

?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 //1-100之间的质数--------2 public class PrimeNumber { public static void main(String[] args) { for(int i=2;i<=100;i++) { for(int j=2;j<=i;j++) { if(i%j==0 && i!=j) { break; } if(j==i) { System.out.println("质数:i= "+i); } } } } }

3、质数实例三

?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 //1-100之间的质数--------3 public class PrimeNumber { public static void main(String[] args) { for(int i=2;i<=100;i++) { int j=2; while(i%j != 0 ) { j++; } if(j==i) { System.out.println("质数:i= "+i); } } } }

4、质数实例四

?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 //1-100之间的质数--------4 public class PrimeNumber { public static void main(String[] args) { for(int i=2;i<=100;i++) { int j=2; for(;j<=i/2;j++) { if(i%j==0) { break; } } if(j==i/2+1) { System.out.println("质数:i= "+i); } } } }

5、质数实例五

?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 public class PrimeNumber { public static void main(String[] args) { int count=0; for(int i=2;i<=100;i++) { int j=2; for(;j<=(int)Math.sqrt(i);j++) { if(i%j==0) { break; } } if(j==(int)Math.sqrt(i)+1) { System.out.println("质数:i= "+i); count++; } } System.out.println("质数个数:count= "+count); } }

6、质数实例六

?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 public class PrimeNumber { public static void main(String[] args) { int count1 = 0, count2 = 0; for (int i = 2; i <= 100; i++) { for (int j = 2; j <= Math.sqrt(i); j++) { if (i % j != 0) { //不能被整除累计一次 count1++; } } // 转为int的类型 int num2 = (int) Math.sqrt(i); //如果累计次数num2 - 1个数相等则为素数 if (count1 == (num2 - 1) { System.out.println("质数: " + i); count2++; } //找到素数后count1再初始化为0 count1 = 0; } // 统计素数个数 System.out.println("质数个数:count2= "+count2); } }

以上为个人经验,希望能给大家一个参考,也希望大家多多支持服务器之家。

原文链接:https://blog.csdn.net/huanyinghanlang/article/details/78206603

如果您对该产品感兴趣,请填写办理(客服微信:xiaoxiongyidong)

为您推荐:

发表评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。