zoukankan      html  css  js  c++  java
  • 公倍数与素数筛选

    这次花点时间做了一下几个简单的模板,或许以后还会有新的模板!


     1 #include<iostream>
     2 #include<cmath>
     3 using namespace std;
     4 
     5 typedef long long ll;
     6 const ll MAX = 0xffffffff;
     7 
     8 // 辗转相除法的一般写法 
     9 int gcd1(int a, int b)
    10 {
    11     int t = 0;
    12     while(a%b != 0)
    13     {
    14         t = b;
    15         b = a%b;
    16         a = t;
    17     }
    18     return b;
    19 }
    20 
    21 // 辗转相除法的递归写法 
    22 int gcd(int a, int b)
    23 {
    24     if(a%b == 0)
    25         return b;
    26     else
    27         return gcd(b, a%b);
    28 }
    29 
    30 // 更相减损法
    31 int gcd2(int a, int b)
    32 {
    33     while(a != b)
    34     {
    35         if(a > b)
    36             a -= b;
    37         else
    38             b -= a;
    39     }
    40     return a;
    41 }
    42 
    43 /*
    44 * 素数的筛选的一般优化方法
    45 * 除非出题人失了智,这种优化一般来讲可以通过了
    46 * 筛选 n 内的所有素数 
    47 */
    48 void getPrime(int n)
    49 {
    50     bool p[0xfffff]; // 默认为false, 测试了一下,这个大小可以通过 
    51     for(ll i=2;i<n;i++)
    52         if(i%2 != 0) p[i] = true;
    53     for(ll i=3;i<=sqrt(n);i+=2){
    54         if(p[i]){
    55             for(ll j=i+i;j<=n;j+=i)
    56                 p[j] = false;
    57         }        
    58     }
    59     for(ll i=2;i<n;i++)
    60         if(p[i])
    61             cout<<i<<" ";
    62         cout<<endl;
    63 }
    64 int main()
    65 {
    66     int a, b;
    67     cin>>a>>b;
    68     
    69     cout<<"最大公约数:"<<gcd2(a, b)<<endl;
    70     
    71     cout<<"最小公倍数:"<<(a*b)/gcd(a, b)<<endl;
    72     // 100以内的所有素数 
    73     getPrime(100);
    74     return 0;
    75  } 
    View Code

    2019-01-13

    16:53:19

  • 相关阅读:
    Struts2:<s:action>的使用
    Struts2:Struts2在jsp中使用标签时值的获取
    jsp:useBean的使用
    关于Filter的一点误解
    Strust2: 工作流程
    java程序连接MySQL数据库
    python 开发工具简介
    NCEP CFSR数据下载
    美国NOAA/AVHRR遥感数据
    气象网站
  • 原文地址:https://www.cnblogs.com/mabeyTang/p/10263249.html
Copyright © 2011-2022 走看看