精华内容
下载资源
问答
  • 主要介绍了Python编程判断一个正整数是否为素数的方法,涉及Python数学运算相关操作技巧,需要的朋友可以参考下
  • 先定义一个有序列表,作为素数池,这样多次操作的时候...定义素数判断函数 def isPrime(num): if num in primePool: return True sq = math.sqrt(num) p=2 for m in primePool: #先从素数池中找 p = m if
  • 今天小编就大家分享一篇python判断所输入的任意一个正整数是否为素数的两种方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • 判断一个整数是否为素数

    千次阅读 2017-09-21 05:50:39
    问题:给定一个正整数,如何判断是否为素数?   素数,又称之为质数,是指在大于1的自然数中,除了1和它本身以外不再有其他因数,这样的数被称为素数。 func challenge(number: Int) -> Bool { // 只有当输入...
    问题:给定一个正整数,如何判断它是否为素数?

      素数,又称之为质数,是指在大于1的自然数中,除了1和它本身以外不再有其他因数,这样的数被称为素数。

    func challenge(number: Int) -> Bool {
        
        // 只有当输入的整数是大于等于2时,题目才有意义
        guard number >= 2 else { return false }
        
        // 遍历从[2, number)之间所有的正整数
        for i in 2 ..< number {
            
            // 如果number能被i整除
            if number % i == 0 {
                
                // 就说明number不是素数,返回false
                return false
            }
        }
        
        // 说明number是素数,返回true
        return true
    }
    

      上面的算法肯定是对的,但是它还不够完美。我们都知道,自然界中的素数有无穷个,当一个数接近无穷大时,你可能要把从2到接近正无穷大的正整数都除以一遍,这个耗时将是难以忍受的。因此,我们要改进上面的算法。

      我们可以这样考虑:假设一个正整数n不是素数,那么肯定存在这样两个正整数x和y,使得n = x * y成立。再假设x和y都大于n的平方根,那么x * y > n肯定是成立的,但实际上这又是不可能的。所以,我们可以确定,x和y中至少有一个数,它是小于或者等于n的平方根的。

      上面这个结论有没有卵用呢?当然是有的,我们可以利用它大幅减少计算步骤。以素数143为例,它开平方然后向上取整,得到整数12,假设143不是素数的话,利用上面的结论可知,它肯定存在一个因子是小于或者等于12的,所以我们只需要在[2, 12)这个区间去搜索结果就可以了。用代码表示为:

    func challenge1(number: Int) -> Bool {
        
        guard number >= 2 else { return false }
        
        // 把整数2排除
        guard number != 2 else { return true }
        
        // ceil(_: )向上取整,sqrt(_: )返回非负的平方根
        let max = Int(ceil(sqrt(Double(number))))
        
        // 除数只需要从2取到max就可以了
        for i in 2 ... max {
            
            // 如果能被i整除
            if number % i == 0 {
                
                // 则说明它不是素数,直接返回false
                return false
            }
        }
        return true
    }
    

      这个方案和第一个比较起来,已经大幅减少了计算开销,是一个比较合理的算法。代码中用到了两个C语言标准库函数ceil(_: )sqrt(_: ),它们分别表示向上取整函数和开平方根函数。

    展开全文
  • 《C语言例程系列》-- 判断一个整数是否为素数

    万次阅读 多人点赞 2018-07-16 11:00:19
    #include &amp;lt;stdio.h&amp;gt;...请输入整数:&quot;); scanf(&quot;%d&quot;,&amp;amp;num); for(i=2; i&amp;lt;(num/2); i++) { a = num % i; if(0 == a
    #include <stdio.h>
    
    int main()
    {
        int num,i,a,b=0;
    
        printf("请输入整数:");
    
        scanf("%d",&num);
    
        for(i=2; i<(num/2); i++)
        {
            a = num % i;
    
            if(0 == a){
            printf("该整数为非素数。\n");
            b=1;
            break;
            }
         }
    
         if(0 == b){
    
         printf("该整数为素数。\n");
        }
         return 0; 
    }

    下面看一下另一段程序。

    #include <stdio.h>
    
    int main()
    {
        int i,num;
        _Bool flag = 1;
    
        printf("请输入一个整数:");
        scanf("%d", &num);
    
        for(i=2;i < num/2;i++)
        {
            if(num % i == 0)
            {
                flag = 0;
                break;
            }
        }
    
        if(flag)
        {
            printf("%d是一个素数!\n",num);
        }
        else
        {
            printf("%d不是一个素数!\n",num);
        }
    }

    对比两段程序可以看出,第二段直接将num % i == 0放在if后的判断表达式中,相比于第一段更加简洁,减少了一个中间变量a的加入。同时加入一个布尔型变量flag来判断整数是否能被整除,代码简洁,可读性强。

    要注意break语句只对当前循环体起作用,当处于嵌套循环中时,跳出内层循环至外层循环体,继续执行外层循环。

    展开全文
  • python:判断给定整数是否为素数

    万次阅读 多人点赞 2019-05-28 10:08:12
    首先,什么事素数呢?只能被 1 和它本身整除的数叫做素数,当然,1 既不是素数也不是合数。... 2: #判断是否大于1的整数,且1不是素数 print("%d不是素数!"%n) else: for i in range(2,n): if n % i == ...

    首先,什么事素数呢?只能被 1 和它本身整除的数叫做素数,当然,1 既不是素数也不是合数。

    脚本如下:

    n = int(input("请输入一个正整数n:"))
    if n < 2:           #判断是否大于1的整数,且1不是素数
        print("%d不是素数!"%n)
    else:
        for i in range(2,n):
            if n % i == 0:    #判断2——i是否有能被整除
                print("%d不是素数!"%n)
                break
        else:
            print("%d是素数!"%n)

    本博主新开公众号, 希望大家能扫码关注一下,十分感谢大家。

    展开全文
  • 素数的定义:是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数即只能被1和自己本身整除的数思路及步骤给定一个大于2的整数n令i=2用n除i,得到余数r判断r==0是否成立,如果成立则n不是素数,结束算法...

    素数的定义:是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数

    即只能被1和自己本身整除的数

    思路及步骤

    给定一个大于2的整数n

    令i=2

    用n除i,得到余数r

    判断r==0是否成立,如果成立则n不是素数,结束算法;如果不成立则将i的值+1仍然用i表示

    判断i>(n-1)是否成立,如果成立则n是素数;否则返回第3步

    流程图

    使用while语句实现

    n = int(input("请输入一个数字:"))

    i = 2

    while True:

    if n < 2:

    print("请输入一个大于或者等于2的整数")

    break

    elif n == 2:

    print("{}是素数".format(n))

    break

    elif n > 2:

    r = n % i

    i += 1

    if r == 0 or i > n-1:

    if r == 0:

    print("{}不是素数".format(n))

    break

    else:

    print("{}是素数".format(n))

    break

    执行步骤

    如果n=1则退出

    如果n=2则输出2是素数

    如果n=3则按照以下步骤执行

    1,i=2 n=3 判断n>2满足条件执行r=3%2=1

    2,i增加1 i=3

    3,判断r == 0 结果为False  i > n-1 3>3-1 结果为True 整体结果为True继续执行if下面语句

    4,判断r==0结果为False则执行else输出3是素数

    如果n=4则安之以下步骤执行

    1,i=2 n=4判断n>2满足条件 执行r=4%2=0

    2,i增加1 i=3

    3,判断r==0结果为True整体结果为True无需判断i>n-1整体结果为True

    4,  判断r==0所以大于4不是素数

    以此类推

    输入任何数字只要可以被2至输入的整数之间的任意一个数整除即余数为0则可以判断为非素数

    直到被除数增加到与输入的数字一致之间还没有出现可以整数的被除数则判断该数为素数

    使用while循环需要把被除数i从2开始没执行一次+1 下面使用for循环实现,i的取值为2至输入的整数n

    n = int(input("请输入一个数字:"))

    for i in range(2, n):

    r = n % i

    if r == 0:

    print("{}不是素数".format(n))

    break

    else:

    print("{}是素数".format(n))

    实现的效果是一样的

    本列使用for循环被除数为从2开始至n-1,如果之间有能整数的被除数则可以判断数字不是素数

    如果一直到n-1还是没有被整除则认为输入的n为素数

    注意else的位置是与for循环同级而不是与if同级,如果以if同级则在第一次循环i=2的时候就通过余数来判断一个数是奇数还是偶数了

    注意:在python中else不一定跟在if后也可以写在for后面

    展开全文
  • 判断一个整数是否素数
  • 判断整数是否素数的几种方法

    万次阅读 多人点赞 2019-03-24 10:21:08
    题目一:输入一个正整数m,判断是否素数。 思路一: 素数指只能被1和其本身整除,比如13只能被1和13整除,假如有整数m, 在2~m-1(包括1与m-1)存在某个数n,使得m % n = 0; 那么m就不是素数。 代码如下(编程...
  • /* 本题要求编写程序,判断一个给定整数是否为素数素数就是只能被1和自身整除的正整数,1不是素数,2是素数。 */ int main(int argc, char *argv[]) { int n,i,limit; scanf("%d",&n); if(n<=1)//...
  • PTA——判断一个整数是否为素数

    千次阅读 2020-12-17 11:38:40
    本题要求编写程序,判断一个给定整数是否为素数素数就是只能被1和自身整除的正整数,1不是素数,2是素数。 输入格式: 输入在一行中给出一个需要判断整数 M(−2​31​​≤M≤2​31​​−1)。 输出格式: 如果...
  • (PTA)7-4 判断一个整数是否为素数 (15分)

    千次阅读 多人点赞 2020-10-27 21:52:10
    本题要求编写程序,判断一个给定整数是否为素数素数就是只能被1和自身整除的正整数,1不是素数,2是素数。 输入格式: 输入在一行中给出一个需要判断整数 M(−2^31​​≤ M ≤2^31−1) 输出格式: 如果M是素数...
  • 大于1的数若不为素数,则被称为合数,也叫作合成数。 素数的特点 大于2的质数只能是奇数。(不能说大于2的奇数都是质数。) 大于5的质数,个位数只能是1、3、7、9。(不能说个位数是1、3、7、9的数都是质数。) 大于3的...
  • 编写函数判断一个整数是否为素数

    千次阅读 2021-05-22 11:33:01
    用来判断整数a是否为素数,若是素数,函数返回1,否则返回0。调用该函数找出任意给定的n个整数中的素数。 注意,1不是素数。输入格式:一系列待判断的正整数,以空格隔开,以0表示输入结束。输出格式:只输出输入的正...
  • C语言:判断输入整数是否为素数

    千次阅读 2020-12-14 19:36:25
    输入一个大于1的整数判断是否为素数。 输入: 输入的数有多个,每个占一行。 输出: 若为素数,输出Yes,否则输出No。 代码如下: #include <stdio.h> int main() { int a,n,i; while(scanf("%d",...
  • 输入一个大于3的整数m,判定他是否为素数 素数,简单来说就是质数,能够被1和自己本身整除才能称为素数。 #include<stdio.h> #include<math.h> void main() { int m,i,k; scanf("%d",&m); k = ...
  • 7-142 判断一个整数是否为素数 (15分)

    千次阅读 2020-11-03 17:36:19
    7-142 判断一个整数是否为素数 (15分)(一点点小想法????) 希望大家可以给出更加简单的方法 欢迎指出错误 #include<stdio.h> #include<stdlib.h> #include<math.h> int main () { int num,i = 1,a...
  • 判断一个整数是否为素数 (15分)

    千次阅读 2020-07-10 16:28:27
    本题要求编写程序,判断一个给定整数是否为素数素数就是只能被1和自身整除的正整数,1不是素数,2是素数。 输入格式: 输入在一行中给出一个需要判断整数 M(−2^​31 ≤ M ≤ 2 ^​31​​ −1)。 输出格式: ...
  • 判断是不是素数
  • 1、判断整数n是否为素数。1>打开记事本,写如下一段代码:public class Utility {/*** 判断整数n是否为素数* @param n* @return*/public boolean isPrime(int n){boolean flag=true;int max=(int)Math.sqrt(n);...
  • 首先素数是指大于1,且只能被1或者本身整除的整数,例如3,5,7,11等等都是素数。 判断整数能否被整除可以用取模(取余数)(%)后是否0来判断... //用于判断是否为素数,是则1,不是则0 printf("enter n:"); ...
  • 1.输入一个整数判断这个整数是否素数。 # include <stdio.h> int main(void) { int val; int i; printf("请输入您需要验证的数字: "); scanf("%d", &val); for (i=2; i<val; ++i) { ...
  • 7-113 判断一个整数是否为素数 (15分)

    千次阅读 2020-03-30 19:51:31
    注意: 1.有负数,要讨论 <=1 2.sqrt可以解决最大 M #include<iostream> #include<math.h> using namespace std; int ss(long long x){ if(x<...i++){ ///sqrt可以解决最大 M...
  • 利用VB编程,判断一个正整数是否素数。如果输入的数字不符合规范,则给出提示,并不予以计算。如果是素数则提示“是素数”,如果不是素数,则给出提示“不是素数”,并且给出不是素数的理由,例如9不是素数,因为9...
  • 判断整数是否为质数的三种方法 本文参考《如何判断一个正整数是否为质数的三种方法 | 附Python程序》结合自身理解,作为笔记发布。如果对你有帮助,点赞关注哦! 一、基本概念 质数(又称素数): 一个大于1的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 28,678
精华内容 11,471
关键字:

判断给定整数是否为素数