美文网首页
关于质数的判定方法

关于质数的判定方法

作者: 帅帅哒小白 | 来源:发表于2016-11-12 14:53 被阅读138次
质数的定义:如果一个数只能被1和它本身整除,那么他就是质数
对于找质因数的方法

方式1

对于一个合数来说;它必然能够被两个数相乘而得到,这两个数之间的关系也必然是一大一小或者是两个相同的数。那么,最小的数只能是大于等于2,因此它最大的因数也只能是合数的一半。只要判断这个数在2到它最大因数之间能否被整除,即可判定它是否是质数。

方式2

相对于方式1,此种方法使除数的范围变更小。N=根号N*根号N,N的因数除了根号N;其他都是成对出现的,且必定一个大于根号N,一个小于根号N。假设N不是质数,有个因数大于等于根号N(不是N本身),则N必定有一个与之对应的小于等于根号N的因数,也就是说,如果2到根号N都没有它的因数,那么对应的根号N到N都没有N的因数,N就是个质数。

判定方法

方法一:

首先,判定1是不是质数,如果是,则输出“不是质数”;否则定义变量a,赋值为2,对变量a进行累加;在a小于输入数的一半时;假如输入的数能够被a整除的话,就将除到的值赋给变量b;如果不能整除,则a进行累加判断,直至退出循环。接下来对b进行判断。如果b大于等于2时,则输出“不是质数”;否则输出是质数。

    `<!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Document</title>
    </head>
    <body>
        <script type="text/javascript">`
            var numa = parseInt(prompt("请输入一个数"));
            var num = parseInt(numa/2);
            var a = 2;
            var b;
            if (numa==1) {
                document.write("不是质数");
            }
            else{
                for(a;a<=num;a++){
                if(numa%a == 0)
                    b=numa/a;
                }
                if(b>=2){
                    document.write("不是质数");
                }
                else{
                    document.write("是质数");
                }`

方法二:

首先,定义一个变量counter并赋值为0;利用while语句进行对a进行累加,并判断num值能否被整除,如果能,则对counter自增;如果不能,则a自增。加入num是质数的话,它只能被自身和1整除,counter能自增两次。那么如果counter等于2,则输出是质数;否则输出“不是质数”;

主要代码

`
var num = parseInt(prompt("请输入一个数));
var a = 1;
var counter = 0;
for(a<=num;a++){
    if(num%a==0){
        counter++;
    } 
    if(counter==2)  {
    document.write("是质数");
    }else{
    document.write("不是质数");
     }
}
`

方法三:

此种方法与方法二类似;就是先立一个flag,让flag的值为false;如果整除,则让flag的值为true;最后对flag的值判断与否。此处省略5000字。

主要代码:

`
   var num = parseInt(prompt("请输入一个数"));
    var flag = false;
    var i = num-1;
    while(i>=2){
        if(num%i==0){
            flag = true;
        }
        i--;
    }
    if (flag) {
        document.write("我不是质数");
    }else{
        document.write("我是质数");
    } 
`

总结:拿到此题时,犯得最主要的错误就是在判定其能被整除的时候,直接输出,这样造成了多次打印。改正的就是在循环里立了个flag,在循环的外面来判定flag的真假,再来打印是否是质数。这样就不会造成重复打印了。

相关文章

  • 关于质数的判定方法

    质数的定义:如果一个数只能被1和它本身整除,那么他就是质数 对于找质因数的方法 方式1 对于一个合数来说;它必然能...

  • Js关于质数的判定

    质数的定义 质数(Prime number),又称素数,指在大于1的自然数中,除了1和该数自身外,无法被其他自然数...

  • 18-04-18:python3 质数(素数)判定

    初稿时间:04-18定稿时间:推敲过程请点击 质数判定 对于一个给定的正整数N,如何判定其为质数(合数)? 2到R...

  • leetcode初级之数学

    1. 计数质数 统计所有小于非负整数 n 的质数的数量。 1.1 迭代法 解题思路:数学问题,用到了两个质数判定性...

  • 质数刷题

    质数距离如何快速求解一个区间的所有质数。阶乘分解快速对整个阶乘质因数分解。判定1e18的质数直接使用Miller-...

  • 质因数分解-试除法

    算数基本定理任何一个大于1的正整数都能被唯一分解为有限个质数的乘积。其中是正整数,是质数,且满足试除法结合质数判定...

  • 质数判断算法 Go

    说明 质数算法常见于RSA中应用这个方法来判定一个数是否是素数。 代码 代码说明 算法核心就是将参数开根号,然后不...

  • 减脂倒计时Day 182

    《断舍离》一书中,关于如何取舍一件物品,讲过一个判定方法:单纯地去思考“这个东西,我现在是否需要”。 这个判定方法...

  • Java实现输出100000以内的质(素)数及算法结构优化

    输出100000以内的所有质数 质数:也叫素数,只能被1和他本身整除的自然数 最小的质数:2 方法一:效率很低 输...

  • 试除法解决质数问题(Python3)

    浅析求解质数问题的一些方法 质数问题是算法中常见的和入门的问题,今天姑且用 "打印100以内所有质数" 这个问题,...

网友评论

      本文标题:关于质数的判定方法

      本文链接:https://www.haomeiwen.com/subject/mvycuttx.html