zoukankan      html  css  js  c++  java
  • 51nod 1284 2 3 5 7的倍数(容斥原理)

    1284 2 3 5 7的倍数  
    基准时间限制:1 秒 空间限制:131072 KB 分值: 5 难度:1级算法题 收藏  关注
    给出一个数N,求1至N中,有多少个数不是2 3 5 7的倍数。 例如N = 10,只有1不是2 3 5 7的倍数。
    Input
    输入1个数N(1 <= N <= 10^18)。
    Output
    输出不是2 3 5 7的倍数的数共有多少。
    Input示例
    10
    Output示例

    1

    容斥原理:|AUBUC|=|A|+|B|+|C|-|ANB|-|BNC|-|CNA|+|ANBNC|;

    正负号取决于集合的个数,奇数个集合为正,偶数个集合为负。

    #include<map>
    #include<stack>
    #include<queue>
    #include<math.h>
    #include<vector>
    #include<string>
    #include<stdio.h>
    #include<iostream>
    #include<string.h>
    #include<algorithm>
    #define maxn 200005
    #define ll long long
    #define inf 0x3f3f3f
    using namespace std;
    int main(){
        ll n;
        while(cin>>n){
            ll ans=(n/2+n/3+n/5+n/7-n/6-n/10-n/14-n/15-n/21-n/35+n/30+n/42+n/70+n/105-n/210);
            cout<<n-ans<<endl;
        }
    }


  • 相关阅读:
    Hoder.js介绍
    vim折叠方法
    tensorflow最基础分类实例--iris分类
    语音识别GMM-HMM
    亨元模式
    责任链模式
    命令模式
    策略模式
    工厂模式
    Java高并发程序设计(十)--无锁
  • 原文地址:https://www.cnblogs.com/da-mei/p/9053252.html
Copyright © 2011-2022 走看看