• 素数判别算法


    素数筛选法

    原理就是当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 }
  • 相关阅读:
    计算日期之差
    大数相加
    NY-字符串替换
    HDU1004之总是wa的细节问题
    指针在字符串简单应用
    mybatis~SQL映射
    java实现递归(1)
    apk、图片下载工具(1)
    签到规则工具(1)
    短信发送工具(2)
  • 原文地址:https://www.cnblogs.com/bournet/p/3972023.html
Copyright © 2020-2023  润新知