• 定义法测试素数


    写在前面:

      记录了个人的学习过程,同时方便复习

    • 定义法测试素数

      由于素数的因数只有1和它本身

      将待测试的正整数n模上2,3,4,……,√n

        如果其中出现模的结果为0,那么说明模数是n的因数,而模数不为1或n,则n不是素数

        如果到最后都没有出现模的结果是0这种情况,那么说明n一定是素数

      定义法判断素数准确无误,但是无疑时间复杂度太高

      一般地,判断素数还是使用[◹]Miller-Rabin算法

      但是有些情况下,定义法还是相当有用的测试方法

    代码如下:

    C++:

     1 #include<bits/stdc++.h>
     2 
     3 using namespace std;
     4 
     5 int n;
     6 
     7 bool isPrime(int x){
     8     for(int i=2;i<=sqrt(x);++i)
     9         if(!(x%i)) return 0;
    10     return 1;
    11 }
    12 
    13 int main(int argc,char *argv[],char *enc[])
    14 {
    15     scanf("%d",&n);
    16     
    17     if(isPrime(n)) printf("Prime!
    ");
    18     else printf("Not a prime
    ");
    19     
    20     return 0;
    21 }

    Java:

     1 import java.util.Scanner;
     2 import java.lang.Math;
     3 
     4 class Pony{
     5     
     6     static int n;
     7 
     8     static boolean isPrime(int x){
     9         for(int i=2;i<=(int)Math.sqrt((double)x);++i)
    10             if(x%i==0) return false;
    11         return true;
    12     }
    13 
    14     public static void main(String[] args) throws Exception
    15     {
    16         Scanner cin=new Scanner(System.in);
    17 
    18         n=cin.nextInt();
    19 
    20         if(isPrime(n)) System.out.printf("Prime!
    ");
    21         else System.out.printf("Not a prime
    ");
    22     }
    23 }

  • 相关阅读:
    收藏了!主流应用市场产品提交资料汇总!
    Oracle用户、权限、角色管理
    H3C SNMP配置解析
    从实战角度浅析snmp
    ICE checkbox 用法
    eclipse序列化生成serialVersionUID
    Bat命令学习
    app生成工具
    微软浏览器兼容工具modern.IE
    php判断手机客户端
  • 原文地址:https://www.cnblogs.com/Antigonae/p/10253274.html
Copyright © 2020-2023  润新知