容斥原理51nod1284 2 3 5 7的倍数

离散数学//
详细解释https://baike.sogou.com/v180264.htm?fromTitle=%E5%AE%B9%E6%96%A5%E5%8E%9F%E7%90%86##s4
A∪B∪C∪D=|A|+|B|+|C|+|D| - |A∩B| - |B∩C| - |C∩A|- |A∩D| - |B∩D| - |C∩D|
                      +|A∩B∩C|+|A∩B∩D| +|A∩C∩D| +|B∩C∩D| -|A∩B∩C∩D|

推导过程我们可以先看三个,比如你过程中出现的|B∪C∪D|

|B∪C∪D|=|B|+|C∪D|-|B∩(C∪D)|=|B|+|C|+|D|-|C∩D|-|[(B∩C)∪(B∩D)]|
               =|B|+|C|+|D|-|C∩D|-|B∩C|-|B∩D|+|B∩C∩D|
推出来后规律是+-+-+-。。。。。。。
1284 2 3 5 7的倍数            
                      +|A∩B∩C|+|A∩B∩D| +|A∩C∩D| +|B∩C∩D| -|A∩B∩C∩D|

推导过程我们可以先看三个,比如你过程中出现的|B∪C∪D|

|B∪C∪D|=|B|+|C∪D|-|B∩(C∪D)|=|B|+|C|+|D|-|C∩D|-|[(B∩C)∪(B∩D)]|
               =|B|+|C|+|D|-|C∩D|-|B∩C|-|B∩D|+|B∩C∩D|
推出来后规律是+-+-+-。。。。。。。
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
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
    ios::sync_with_stdio(false);
    long long n;
    while(cin>>n)
    {
        long long er,san,wu,qi,liu,shi,shisi,shiwu,ershiyi,sanshiwu,sanshi,sishier,qishi,yibailingwu,erbaiyi;
        er=n/2;
        san=n/3;
        wu=n/5;
        qi=n/7;
        liu=n/6;
        shi=n/10;
        shisi=n/14;
        shiwu=n/15;
        ershiyi=n/21;
        sanshiwu=n/35;
        sanshi=n/30;
        sishier=n/42;
        qishi=n/70;
        yibailingwu=n/105;
        erbaiyi=n/210;
        long long zonggong=0;
        zonggong=er+san+wu+qi-liu-shi-shisi-shiwu-ershiyi-sanshiwu+sanshi+sishier+qishi+yibailingwu-erbaiyi;
        cout<<n-zonggong<<endl;
    }
    return 0;

}

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值