zoukankan      html  css  js  c++  java
  • 素数判别算法

    素数筛选法

    原理就是当i是素数的时候,i的所有的倍数必然是合数。如果i已经被判断不是质数了,那么再找到i后面的质数来把这个质数的倍数筛掉。算法实现

     1 #include <iostream>
     2 #include <math.h>
     3 using namespace std;
     4 
     5 int main()
     6 {
     7     int N = 1000000;
     8         //prime用来保存下标i是否是素数
     9     bool prime[N+1];
    10         //初始化,偶数(除了2)都是合数
    11     for (int i = 0; i < N; i++)
    12     {
    13         if (i%2 == 0 && i != 2)
    14             prime[i] = false;
    15         else
    16             prime[i] = true;
    17     }
    18 
    19     for (int i = 3; i <= sqrt(N); i += 2)
    20     {
    21                 //若i不是素数,则i的倍数都不是素数
    22         if (prime[i])
    23             for (int j = i+i; j <= N; j += i)
    24                 prime[j] = false;
    25     }
    26 
    27     for (int i = 2; i <= N; i++)
    28     {
    29         if (prime[i])
    30             cout << i << endl;
    31     }
    32     
    33     return 0;
    34 }
  • 相关阅读:
    Bacula Plugins
    getopt、getopt_long命令参数
    Notepad++ 快捷键
    make命令
    Linux目录结构
    rhel安装输入法
    libtool编译
    install和cp
    dlopen动态链接库操作
    结构体赋值
  • 原文地址:https://www.cnblogs.com/bournet/p/3972023.html
Copyright © 2011-2022 走看看