离散数学//
详细解释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;
}