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

目录
  • java判断一个数是否是素数(质数)
    • 质数(prime number)又称素数,有无限个
    • 思路
  • java 求1-100之间的质数
    • 质数定义:
    • 1、质数实例一
    • 2、质数实例二
    • 3、质数实例三
    • 4、质数实例四
    • 5、质数实例五
    • 6、质数实例六

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

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

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

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之间的素数

思路

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

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-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-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-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-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、质数实例五

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、质数实例六

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);
 }
}

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • java求100之内的素数(质数)简单示例

    质数又称素数.一个大于1的自然数,如果除了1和它自身外,不能被其他自然数整除的数:否则称为合数.根据算术基本定理,每一个比1大的整数,要么本身是一个质数,要么可以写成一系列质数的乘积:而且如果不考虑这些质数在乘积中的顺序,那么写出来的形式是唯一的.下面是一个java求100之内的素数简单示例 复制代码 代码如下: public class test { public static void main(String[] args) {  int i,n,k=0;     for (n = 3; n

  • 在java8中使用流区分质数与非质数详解

    我就废话不多说了,大家还是直接看代码吧~ public class PrimeTest { public static void main(String[] args) { Map<Boolean, List<Integer>> collect = IntStream.rangeClosed(2, 100).boxed().collect(partitioningBy(PrimeTest::isPrime)); System.out.println(collect.get(true

  • Java求质数的几种常用算法分析

    本文实例讲述了Java求质数的几种常用算法.分享给大家供大家参考,具体如下: 1.根据质数的定义求 质数定义:只能被1或者自身整除的自然数(不包括1),称为质数. 利用它的定义可以循环判断该数除以比它小的每个自然数(大于1),如果有能被它整除的,则它就不是质数. 对应代码是: void printPrime(int n){//判断n是否是质数 boolean isPrime=true;//是否是质数的标志 for(int i=n-1;i>1;i-){//n除以每个比n小比1大的自然数 if(n%

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

    目录 java判断一个数是否是素数(质数) 质数(prime number)又称素数,有无限个 思路 java 求1-100之间的质数 质数定义: 1.质数实例一 2.质数实例二 3.质数实例三 4.质数实例四 5.质数实例五 6.质数实例六 java判断一个数是否是素数(质数) 质数(prime number)又称素数,有无限个 质数定义为在大于1的自然数中,除了1和它本身以外不再有其他因数,这样的数称为质数. import java.util.Scanner; public class Te

  • C语言判断一个数是否为素数方法解析

    一.概念介绍 素数又称为质数.一个大于1的自然数(从2开始),除了1和它本身外,不能被其他自然数整除的叫做素数,否则称为合数. 0和1既不是素数也不是合数,最小的素数是2. 二.代码 方法一: bool is_Prime(int num){ int i; for(i = 2;i <= sqrt(num);i++){ if(num % i == 0)//一旦发现有因子,则返回false return false; } return true; } 注意:在for循环判断时不能忘记 i <= sq

  • 判断一个数是不是素数的方法

    给出一个数,判断这个数是不是素数: 复制代码 代码如下: #include <cmath> bool isPrime(int n) {  int i;  for (i = 2; i <= sqrt(n); i++) {    if (n % i == 0)      return false;  }  return true;}

  • ruby判断一个数是否为质数(素数)示例

    ruby判断一个数是否为质数 质数又称素数.一个大于1的自然数,如果除了1和它自身外,不能被其他自然数整除的数:(除0以外)否则称为合数 .根据算术基本定理,每一个比1大的整数,要么本身是一个质数,要么可以写成一系列质数的乘积:而且如果不考虑这些质数在乘积中的顺序,那么写出来的形式是唯一的. 复制代码 代码如下: def prime?(num)  res = [1]  res << num if num == 0 || num == 1    return false  end 2.upto(

  • java 判断一个数是否为2的整数次幂方法

    当不考虑负数时,对于此题分析可知,当输入值小于1时,此数肯定不是2的整数次幂. 当输入值大于一时,我们可以发现一个规律.2的整数次幂用二进制表示为: 2d = 10b:  4d = 100b: 8d = 1000b 二进制首位为一,其余各位均为零. 所以我们可以通过判断输入值转换为二进制时首位为一,其余各位为0,这样就能保证输入值为2的整数次幂. 但是这样做又过于繁琐,我们可以只判断二进制数中最后一次出现"1"的位置,使用String,lastIndexOf();方法即可. 而且我们还

  • C++如何判断一个数是不是素数

    目录 如何判断一个数是不是素数 思路 实现代码 快速判断一个数是不是素数(质数) 朴素的方法 下面介绍一个更快的方法 如何判断一个数是不是素数 题目:判断一个数是不是素数,1 < N <= 50000 思路 判断n是否整除(求余是否等于0)大于1而小于sqrt(n)中的任何一个数,如果有则不是素数,否则是素数 实现代码 // 判断一个数是不是素数,1 < N <= 50000 #include <iostream> #include <cmath> usin

  • Python编程判断一个正整数是否为素数的方法

    本文实例讲述了Python编程判断一个正整数是否为素数的方法.分享给大家供大家参考,具体如下: import string import math #判断是否素数的函数 def isPrime(n): if(n<2): return False; elif(n==2): return True; elif(n>2): for d in range(2,int(math.ceil(math.sqrt(n))+1)): if(n%d==0): return False; return True;

  • 用Java程序判断是否是闰年的简单实例

    我们知道,(1)如果是整百的年份,能被400整除的,是闰年:(2)如果不是整百的年份,能被4整除的,也是闰年.每400年,有97个闰年.鉴于此,程序可以作以下设计: 第一步,判断年份是否被400整除,能的话,就是闰年.比如1600.2000.2400年是闰年. 第二步,在第一步不成立的基础上,判断年份能否被100整除,如果是,则不是闰年.比如1900.2100.2200年不是闰年. 第三步,在第二步不成立的基础上,判断年份能否被4整除,如果是,则是闰年.比如1996.2004.2008年是闰年.

  • Java正则判断日期格式是否正确的方法示例

    本文实例讲述了Java正则判断日期格式是否正确的方法.分享给大家供大家参考,具体如下: 1.Java中用正则表达式判断日期格式是否正确 DateType.java: /** * @Title:DateType.java * @Package:com.you.dao * @Description: * @Author: 游海东 * @Version V1.2.3 */ package com.you.dao; import java.util.regex.Matcher; import java.

  • Java列出2到100之间所有素数的方法

    本文实例讲述了Java列出2到100之间所有素数的方法.分享给大家供大家参考.具体实现方法如下: //TestPrime.java: public class TestPrime { public static boolean isPrime(int num) { for(int i = 2; i <= Math.sqrt(num); i++) { //程序默认2是素数,当j=2时,循环不执行 if(num % i == 0) { return false; } } return true; }

随机推荐