java判读数值数据(自然数)是否为素数

素数:除了1和它本身无其他约数,也称质数(素数只有1和它本身两个约数(不能被整除))

想法:素数从2开始;如果为素数,从2 到 其平方根中,有自然数能整除它,则为素数,反之否。

代码如下:

package ca.map;

public class IsPrime {
    public static void main(String[] args) {
        dataOfRange(20, 100);
    }
    public static void dataOfRange(int startData,int endData){
        for(int i = startData;i < endData;i++){
            if(isPrime(i)){
                if(i >= startData){
                    System.out.print(i+" ");
                }
            }
        }
    }

   /**
    * isPrime:判读数是否为素数<br/>
    * @param data 预判读数<br/>
    * @return : true 为素数,false为合数
    * */
    public static boolean isPrime(int data){
        //获取数据的平方根
        int isqrt = (int) Math.sqrt(data);
        //自然数中0,1既不是素数,也不是合数
        if(data < 2){
            return false;
        }
        for(int i = 2; i <= isqrt;i++){
            //合数
            if(data % i ==0){
                //break 跳出循环,返回不是素数
                return false;
            }
        }
        //素数
        return true;
    }
}

自然数20到100进行测试。

输出:

23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 

时间: 2024-10-28 06:21:24

java判读数值数据(自然数)是否为素数的相关文章

java求100以内的素数示例分享_java

复制代码 代码如下: package airthmatic; public class demo8 { /**  * 素数是指因数只有1和本身的数字  * @param arg  */ public static void main(String arg[]) {  for(int i=1;i<=100;i++)  {   if(find(i))    System.out.print(i+" ");  } }  /**  * 1-n个自然数中的素数  * @param n  *

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

本文实例讲述了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; }

java-JAVA求101到200的素数并全部输出 求大神看下我的编程错在哪谢谢

问题描述 JAVA求101到200的素数并全部输出 求大神看下我的编程错在哪谢谢 public class SuShu { public static void main(String[] args) { int i = 0; for(int a=101;a<200;a+=2) { for(int b=2;b<a;b++) { if(a%b!=0) { System.out.println(a); i = i + 1; } else { break; } } } System.out.prin

java-Java求101到200的素数并输出 求大神看下哪里错了 能不能不用boolean函数改

问题描述 Java求101到200的素数并输出 求大神看下哪里错了 能不能不用boolean函数改 public class SuShu { public static void main(String[] args) { int i = 0; for(int a=101;a<200;a+=2) { for(int b=2;b<a;b++) { if(a%b!=0) { System.out.println(a); i++; } else{ break; } } } System.out.pr

多种方法实现素数的判断

原文:多种方法实现素数的判断 素数的定义:   指整数在一个大于1的自然数中,除了1和此整数自身外,没法被其他自然数整除的数.换句话说,只有两个正因数(1和自己)的自然数即为素数.   我将给出几种实现对自然数n进行素数的判断方法,主要从代码的执行效率上考虑这个问题.   首先,根据素数的定义,大家都会想到的一个方法就是遍历2~n-1,如果n能被其中的数整除,则n不是素数,否则为素数. 代码: 1 //方法1(遍历) 2 int prime_1(int n) 3 { 4 for(int i=2;

梅森素数--美丽的贝壳

一.价值五万美元的素数    2000年4月6日,住在美国密歇根州普利茅茨的那扬·哈吉拉特瓦拉(Nayan Hajratwala)先生得到了一笔五万美元的数学奖金,因为他找到了迄今为止已知的最大素数,这是一个梅森素数:                    2^6972593-1.这也是我们知道的第一个位数超过一百万位的素数.精确地讲,如果把这个素数写成我们熟悉的十进制形式的话,它共有两百零九万八千九百六十位数字,如果把它以这个形式写下来,大约需要150到200篇本文的篇幅.    可是哈吉拉特

十万美元的悬赏 互联网梅森素数大搜索_应用技巧

一.价值五万美元的素数  2000年4月6日,住在美国密歇根州普利茅茨的那扬·哈吉拉特瓦拉(Nayan Hajratwala)先生得到了一笔五万美元的数学奖金,因为他找到了迄今为止已知的最大素数,这是一个梅森素数: 26972593-1. 这也是我们知道的第一个位数超过一百万位的素数.精确地讲,如果把这个素数写成我们熟悉的十进制形式的话,它共有两百零九万八千九百六十位数字,如果把它以这个形式写下来,大约需要150到200篇本文的篇幅. 可是哈吉拉特瓦拉先生并不是一个数学家,他甚至很可能对寻找素数

正则表达式与数学(方程式、线性方程)_正则表达式

正则表达式如下: 复制代码 代码如下: ^1?$|^(11+?)\1+$ 可以判断素数(换成n个1的形式,n为数字的大小.比如5转换为11111:3转换为111:2转换为11.) 什么是素数? 初中学的吧.我们老师当初教我们的是"质数".看下概念: 质数又称素数.指在一个大于1的自然数中,除了1和此整数自身外,没法被其他自然数整除的数. 换句话说,只有两个正因数(1和自己)的自然数即为素数.比1大但不是素数的数称为合数.1和0既非素数也非合数. 这个正则表达式是什么意思? [^1?$|

正则表达式与数学(方程式、线性方程)

正则表达式如下: 复制代码 代码如下: ^1?$|^(11+?)\1+$ 可以判断素数(换成n个1的形式,n为数字的大小.比如5转换为11111:3转换为111:2转换为11.) 什么是素数? 初中学的吧.我们老师当初教我们的是"质数".看下概念: 质数又称素数.指在一个大于1的自然数中,除了1和此整数自身外,没法被其他自然数整除的数. 换句话说,只有两个正因数(1和自己)的自然数即为素数.比1大但不是素数的数称为合数.1和0既非素数也非合数. 这个正则表达式是什么意思? [^1?$|