判断素数 订阅
质数公式,又称素数公式,在数学领域中,表示一种能够仅产生质数(素数)的公式。即是说,这个公式能够一个不漏地产生所有的质数,并且对每个输入的值,此公式产生的结果都是质数。由于质数的个数是可数的,因此一般假设输入的值是自然数集(或整数集及其它可数集)。迄今为止,人们尚未找到易于计算且符合上述条件的质数公式,但对于质数公式应该具备的性质已经有了大量的了解。 展开全文
质数公式,又称素数公式,在数学领域中,表示一种能够仅产生质数(素数)的公式。即是说,这个公式能够一个不漏地产生所有的质数,并且对每个输入的值,此公式产生的结果都是质数。由于质数的个数是可数的,因此一般假设输入的值是自然数集(或整数集及其它可数集)。迄今为止,人们尚未找到易于计算且符合上述条件的质数公式,但对于质数公式应该具备的性质已经有了大量的了解。
信息
又    称
素数公式
输入的值
自然数集
用    途
仅产生质数(素数)
中文名
判断素数
判断素数公式介绍
上下素性判定法首先,本文英文字母都表示整数,上半部B 》3N 》W,下半部B 》W 》3N。大于3的素数只有6N-1和6N+1两种形式,我们只需判定这两种数是素数还是合数即可。命题 1 对于B=36N+1 形数而言。若不定方程(3N)^2+N-(B-1)/36=W^2 有整数解,则 6(3N-W)+1 是小因子数;6(3N+W)+1 是大因子数。若不定方程 (3N)^2-N-(B-1)/36=W^2 有整数解,则 6(3N-W)-1 是小因子数;6(3N+W)-1 是大因子数。两式都无解,是素数。命题 2对于B=36N+7 形数而言。若不定方 (3N)^2+4N-(B-7)/36=W^2+W 有整数解,则 6(3N-W)+1 是小因子数,6(3N+W+1)+1 是大因子数。若不定方程 (3N+2)^2+2N+2-(B+29)/36=W^2+W 有整数解,则 6(3N+2-W)-1 是小因子数,6(3N+W+3)-1 是大因子数。两式都无解,是素数。命题 3对于B=36N+13 形数而言。若不定方程 (3N+1)^2+N-(B-13)/36=W^2 有整数解,则 6(3N+1-W)+1 是小因子数,6(3N+1+W)+1是大因子数。若不定方程 (3N+2)^2-N-(B+23)/36=W2 有整数解,则 6(3N+2-W)-1 是小因子数,6(3N+2+W)-1是大因子数。两式都无解,是素数。命题 4 对于B=36N+19 形数而言。若不定方程(3N+1)^2+4N+1-(B-19)/36=W^2 +W 有整数解,则 6(3N+1-W)+1 是小因子数;6(3N+2+W)+1 是大因子数。若不定方程 (3N+1)^2+2N+1-(B+17)/36=W^2 +W 有整数解,则 6(3N+1-W)-1 是小因子数;6(3N+2+W)-1 是大因子数。两式都无解,是素数。命题 5 对于B=36N+25 形数而言。若不定方 (3N+2)^2+N-(B-25)/36=W^2有整数解,则 6(3N+2-W)+1 是小因子数,6(3N+2+W)+1 是大因子数。若不定方程 (3N+1)^2-N-(B+11)/36=W^2有整数解,则 6(3N+1-W)-1 是小因子数,6(3N+1+W)-1 是大因子数。两式都无解,是素数。命题 6 对于B=36N+31 形数而言。若不定方程 (3N+2)^2+4N+2-(B-31)/36=W^2 +W 有整数解,则 6(3N+2-W)+1 是小因子数,6(3N+3+W)+1是大因子数。若不定方程 (3N+1)^2-4N-1-(B+5)/36=W^2+W有整数解,则 6(3N-W)-1 是小因子数,6(3N+1+W)-1是大因子数。两式都无解,是素数。命题 7对于B=36N-1 形数而言。若不定方程(3N)^2-N+(B-1)/36=W^2 有整数解,则 6(3N-W)+1 是小因子数;6(3N+W)-1 是大因子数。若不定方程 (3N)^2+N+(B-1)/36=W^2 有整数解,则 6(W-3N)-1 是小因子数;6(W+3N)+1 是大因子数。两式都无解,是素数。命题 8对于B=36N+5 形数而言。若不定方 (3N)^2+2N+(B-5)/36=W^2+W 有整数解,则 6(W-3N)+1 是小因子数,6(W+3N+1)-1 是大因子数。若不定方程 (3N+2)^2+4N+2+(B+31)/36=W^2+W 有整数解,则 6(W-3N-2)-1 是小因子数,6(W+3N+3)+1 是大因子数。两式都无解,是素数。命题 9对于B=36N+11 形数而言。若不定方程 (3N+1)^2-N+(B-11)/36=W^2 有整数解,则 6(W-3N-1)+1 是小因子数,6(W+3N+1)-1是大因子数。若不定方程 (3N+2)^2+N+(B+25)/36=W2 有整数解,则 6(W-3N-2)-1 是小因子数,6(W+3N+2)+1是大因子数。两式都无解,是素数。命题 10 对于B=36N+17 形数而言。若不定方程(3N+1)^2+2N+1+(B-17)/36=W^2 +W 有整数解,则 6(W-3N-1)+1 是小因子数;6(W+3N+2)-1 是大因子数。若不定方程 (3N+1)^2+4N+1+(B+19)/36=W^2 +W 有整数解,则 6(W-3N-1)-1 是小因子数;6(W+3N+2)+1 是大因子数。两式都无解,是素数。命题 11 对于B=36N+23 形数而言。若不定方 (3N+2)^2-N+(B-23)/36=W^2有整数解,则 6(W-3N-2)+1 是小因子数,6(W+3N+2)+1 是大因子数。若不定方程 (3N+1)^2+N+(B+13)/36=W^2有整数解,则 6(W-3N-1)-1 是小因子数,6(W+3N+1)+1 是大因子数。两式都无解,是素数。命题 12 对于B=36N+31 形数而言。若不定方程 (3N+2)^2+2N+2+(B-29)/36=W^2 +W 有整数解,则 6(W-3N-2)+1 是小因子数,6(W+3N+3)-1是大因子数。若不定方程 (3N)^2-4N+(B+7)/36=W^2+W有整数解,则 6(W-3N)-1 是小因子数,6(W+3N+1)+1是大因子数。两式都无解,是素数。素数定理描述素数的大致分布情况。素数定理可以给出第n个素数p(n)的渐近估计: 它也给出从整数中抽到素数的概率。从不大于n的自然数随机选一个,它是素数的概率大约是1/ln n。 这定理的式子于1798年法国数学家勒让德提出。1896年法国数学家哈达玛(JacquesHadamard)和比利时数学家普森(Charles Jean de la Vallée-Poussin)先后独立给出证明。证明用到了复分析,尤其是黎曼函数。对正实数x,定义π(x)为素数计数函数,亦即不大于x的素数个数。数学家找到了一些函数来估计π(x)的增长。以下是第一个这样的估计。 其中ln x为x的自然对数。上式的意思是当''x''趋近∞,π(x)与x/ln x的比值趋近1。但这不表示它们的数值随著x增大而接近。下面是对π(x)更好的估计: , 其中 . 而关系式右边第二项是误差估计,详见大O符号。 下表比较了π(x),x/lnx和Li(x) 因为黎曼ζ函数与π(x)关系密切,关于黎曼ζ函数的黎曼猜想对数论很重要。一旦猜想获证,便能大大改进素数定理误差的估计。1901年瑞典数学家Helge von Koch证明出,下式与黎曼猜想等价: 至於大O项的常数则还未知道。在1948年,塞尔伯格和保罗·埃尔德什首次给出素数定理的初等证明.素数定理有些初等证明只需用数论的方法。第一个初等证明於1949年由匈牙利数学家保罗·艾狄胥(“爱尔多斯”,或“爱尔多希”)和挪威数学家阿特利·西尔伯格合作得出。 在此之前 一些数学家不相信能找出不需借助艰深数学的初等证明。像英国数学家哈代便说过素数定理必须以复分析证明,显出定理结果的「深度」。他认为只用到实数不足以解决某些问题,必须引进复数来解决。这是凭感觉说出来的,觉得一些方法比别的更高等也更厉害,而素数定理的初等证明动摇了这论调。Selberg-艾狄胥的证明正好表示,看似初等的组合数学,威力也可以很大。 但是,有必要指出的是,虽然该初等证明只用到初等的办法,其难度甚至要比用到复分析的证明远为困难。
收起全文
精华内容
下载资源
问答
  • 判断素数

    千次阅读 2016-08-17 22:37:26
    判断素数
    //判断素数
    import java.util.*;
    public class Sum1{
    	public static void main(String [] args){
    		System.out.println("请输入要判断的数(大于1):");
    		Scanner sc = new Scanner(System.in);
    		int q = sc.nextInt();
    		boolean f = true;
    		for(int i=2;i<Math.sqrt(q);i++){
    			if(q%i==0){
    				f = false;
    				break;
    			}
    		}
    		if(f == true){
    			System.out.println(q+"是素数");
    		}else{
    			System.out.println(q+"不是素数");
    		}
    		
    		System.out.println("************************************");
    	}
    }

    展开全文
  • Java判断素数

    千次阅读 2018-12-03 09:07:09
    在第一题中需要使用到的判断是否是素数的代码提出来,单独成为判断素数的代码 import java.util.Scanner; /* * 在第一题中需要用到判断素数的程序,我们首先在这里写出来 */ public class Sushu_P1 { public ...

    在第一题中需要使用到的判断是否是素数的代码提出来,单独成为判断素数的代码

    import java.util.Scanner;
    
    /*
     * 在第一题中需要用到判断素数的程序,我们首先在这里写出来
     */
    public class Sushu_P1 {
    	public static void main(String[]args) {
    		Scanner cin=new Scanner(System.in);
    		int a=cin.nextInt();
    		boolean flag=true;
    		for(int i=2;i<a;i++) {
    			if(a%i==0) {
    				flag=false;
    				break;
    			}
    		}
    		cin.close();
    		if(flag&&a!=1)
    			System.out.println("这个数是素数");
    		else
    			System.out.println("这个数不是素数");
    		
    	}
    
    }
    

     

    展开全文
  • Python实例:判断素数

    千次阅读 2019-11-12 20:20:46
    判断素数: 说明:本程序首先定义一个判断素数并将其输出的函数IsPrime()IsPrime()IsPrime(),函数包含两个参数aaa和bbb,本程序的作用即输出aaa和bbb之间的所有素数。 Python程序实现 #Date:2019-11-12 #Writer:...
    判断素数:
    • 说明:本程序首先定义一个判断素数并将其输出的函数IsPrime()IsPrime(),函数包含两个参数aabb,本程序的作用即输出aabb之间的所有素数。
    • Python程序实现
    #Date:2019-11-12
    #Writer:无名十三
    
    def IsPrime(a, b):               #定义一个判断素数的函数
        list_Prime = []              #创建一个空列表,用于接收a与b之间的素数
        for i in range(a, b+1):
            for j in range(2, i+1):
                if j < i:
                    if i % j == 0:
                        break
                if j == i:
                    list_Prime.append(i)  #将经判断得到的素数放入列表中
                    
        print('从{}至{}之间的素数如下:\n'.format(a, b))
        for k in range(len(list_Prime)):
            print(list_Prime[k], end = ' ')
            if (k+1) % 6 == 0:
                print('\n')
        print('\n\n共{}个素数.'.format(len(list_Prime)))
    
    • 示例:输出1至100之间所有的素数如下:
    IsPrime(1, 100)   #调用函数
    
    • 程序运行结果如下:
    从1至100之间的素数如下:
    
    2 3 5 7 11 13 
    
    17 19 23 29 31 37 
    
    41 43 47 53 59 61 
    
    67 71 73 79 83 89 
    
    97 
    
    共25个素数.
    
    • 结束语:上述代码根据本人理解进行编写,如有错误或不妥之处,请指正!
    展开全文
  • C语言判断素数(求素数)

    千次阅读 多人点赞 2020-10-30 11:27:24
    C语言判断素数(求素数) 素数又称质数。所谓素数是指除了 1 和它本身以外,不能被任何整数整除的数,例如17就是素数,因为它不能被 2~16 的任一整数整除。 思路1):因此判断一个整数m是否是素数,只需把 m 被 2 ~ ...

    C语言判断素数(求素数)

    素数又称质数。所谓素数是指除了 1 和它本身以外,不能被任何整数整除的数,例如17就是素数,因为它不能被 2~16 的任一整数整除。

    思路1):因此判断一个整数m是否是素数,只需把 m 被 2 ~ m-1 之间的每一个整数去除,如果都不能被整除,那么 m 就是一个素数。

    思路2):判断方法还可以简化。m 不必被 2 ~ m-1 之间的每一个整数去除,只需被 2 ~  之间的每一个整数去除就可以了。如果 m 不能被 2 ~  间任一整数整除,m 必定是素数。例如判别 17 是是否为素数,只需使 17 被 2~4 之间的每一个整数去除,由于都不能整除,可以判定 17 是素数。
        原因:因为如果 m 能被 2 ~ m-1 之间任一整数整除,其二个因子必定有一个小于或等于 ,另一个大于或等于 。例如 16 能被 2、4、8 整除,16=2*8,2 小于 4,8 大于 4,16=4*4,4=√16,因此只需判定在 2~4 之间有无因子即可。

    思路1实现:

    #include <stdio.h>
    int main() {
    	int n;
    	printf("请输入一个1-100之间的整数:\n");
    	scanf("%d", &n);
    
    
    	int m = 0;
    	for (int i = 2; i < n; i++ ) {
    		if(n % i  == 0) {
    			m++;
    		}
    	}
    	if (m == 0) {
    		printf("%d是素数\n", n);
    	} else {
    		printf("%d不是素数\n", n);
    	}
    
    	return 0;
    }

    思路2实现:

    #include <stdio.h>
    #include <math.h>
    int main() {
    	int n;
    	printf("请输入一个1-100之间的整数:\n");
    	scanf("%d", &n);
    
    
    	int i = 0;
    	int q = sqrt(n);
    	for (i = 2; i <= q; i++ ) {
    		if(n % i  == 0) {
    			break;
    		}
    	}
    	if (i > q) {
    		printf("%d是素数\n", n);
    	} else {
    		printf("%d不是素数\n", n);
    	}
    
    	return 0;
    }

     

    《C与指针》4.14 - 2:

    打印1~100之间所有质数:

    #include <stdio.h>
    int main() {
    	int num, divisor;
    	printf("1, 2");
    	for (num = 3; num <= 100; num += 2) {
    		for(divisor = 3; divisor < num; divisor +=2 ) {
    			if (num % divisor == 0) {
    				break;
    			}
    		}
    
    		if(divisor >= num) {
    			printf(", %d", num);
    		}
    	}
    	printf("\n");
    	return 0;
    }

    结果:

    1, 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97
    

     

    展开全文
  • 判断素数的高效的方法

    千次阅读 多人点赞 2018-11-18 15:22:29
    以前判断素数的方法是:将每个值传入一个函数,这个函数里面用 for循环判读是否为素数。这种方法的效率比较低,所以经过在网上查找资料和大佬的整理,出现里另外一种效率较高的判断素数的方法——孪生素数法。  ...
  • 19 判断素数

    2019-01-09 22:16:56
    19 判断素数 本题的目标很简单,就是判断一个给定的正整数是否素数。 输入格式: 输入在第一行给出一个正整数N(≤ 10),随后N行,每行给出一个小于2​31的需要判断的正整数。 输出格式: 对每个需要判断的正整数,...
  • PTA-判断素数

    千次阅读 2018-04-27 12:37:17
    判断素数本题的目标很简单,就是判断一个给定的正整数是否素数。输入格式:输入在第一行给出一个正整数N(≤ 10),随后N行,每行给出一个小于2​31​​的需要判断的正整数。输出格式:对每个需要判断的正整数,...
  • C判断素数

    千次阅读 2019-01-26 21:55:38
    判断素数 1 #include &amp;lt;stdio.h&amp;gt; 2 #include&amp;lt;math.h&amp;gt; 3 #include&amp;lt;stdlib.h&amp;gt; 4 5 int main() 6 { 7 int n,i; 8 scanf(&quot...
  • 10 判断素数 (10分)

    万次阅读 2017-03-11 20:31:44
    2注意:1不是素数,2是素数10 判断素数 (10分) 本题的目标很简单,就是判断一个给定的正整数是否素数。输入格式: 输入在第一行给出一个正整数N(≤\le≤ 10),随后N行,每行给出一个小于2312^{31}2​31​​的需要...
  • Java中判断素数的五种方法

    万次阅读 多人点赞 2019-01-21 17:04:41
    Java 中判断素数我们有很多方法,每种方法时间复杂度也不一样。今天我汇总了一下,分享给大家。既可以输出前 50 或 n 个素数,也可以判断 100 (或 n) 以内的素数。 1. 从 2 到 x-1 测试是否可以整除 Scanner in = ...
  • PTA判断素数

    千次阅读 2019-01-31 21:44:33
    3、用sqrt平方根判断素数,以防超时 N=根号N*根号N N的因数除了根号N,其他都是成对存在的,且必定一个大于根号N一个小于根号N 假设N不是质数,有个因数大于根号N(不是N本身) 则N必定有一个与之对应的小于根号N的...
  • 如何判断素数

    万次阅读 多人点赞 2019-06-02 20:06:13
    素数(Prime number,又称质数),指在大于1的自然数中,除了1和该数自身外,无法被其他自然数整除的数(也可定义为只有1与该数本身两个正因数的数)。大于1的自然数若不是素数,则称之为合数(也称为合成数)。例如...
  • 用python 判断素数

    千次阅读 2019-02-12 15:44:40
    判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。 import math l = [] for n in range(101, 201): for i in range(2, int(math.sqrt(n)) + 1): if n % i ...
  • Java判断素数解析

    2020-05-06 22:18:32
    程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。 注意:sqrt是指平方,在这的作用是提高运算速度,也可以不用,比如:判断100是否是素数不用sqrt的话...
  • C语言判断素数的两种方法

    千次阅读 多人点赞 2019-08-17 10:35:45
    C语言判断素数的两种方法 素数又称质数。所谓素数是指除了 1 和它本身以外,不能被任何整数整除的数,例如17就是素数,因为它不能被 2~16 的任一整数整除。 思路1):因此判断一个整数m是否是素数,只需把 m 被 2 ~ m...
  • 判断素数&计算素数个数 java源码: import java.util.Scanner; public class Prime { //判断是否为素数 public static boolean isPrime(int n){ if(n==1)return false; if(n==2||n==3)return true; ...
  • 判断素数的c语言程序_C素数程序

    千次阅读 2020-09-09 10:10:44
    判断素数的c语言程序Here you will get program for prime number in C. 在这里,您将获得C中素数的程序。 A number that is only divisible by 1 or itself is called prime number. 仅可被1整除的数字或本身...
  • c语言——判断素数

    2019-05-18 23:05:45
    判断素数 因为素数是一个除了一和它本身不能被其他数整除的数,所以判断是否为素数只需判断出他是否还能被其他数整除。 判断方法为用数字n循环的被2 ~ n-1的每一个数整除。 int n; scanf("%d",&n); //接收需要...
  • 判断素数的函数

    2019-10-31 14:12:04
    编写一个判断素数的函数,主函数中利用这个函数,打印出n与m之间的所有素数。 Input 多组测试数据,每组输入2个整数n和m,其中1 < n <= m <= 1000 Output 在一行输出n和m之间(包含n和m)的所有素数,中间用...
  • C++判断素数的函数

    千次阅读 2020-10-08 17:22:17
    判断素数的函数 bool isprime(int n) { if (n <= 1) return false; int sqr = int(sqrt(n * 1.0)); for (int i = 2; i <= sqr; i++) { if (n % i == 0) return false; } return true; }

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 63,564
精华内容 25,425
关键字:

判断素数