欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

51Nod 1284 2 3 5 7的倍数

程序员文章站 2022-05-22 09:59:56
...

1284 2 3 5 7的倍数
给出一个数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<stdio.h>
int main()
{
    long long n;
    scanf("%lld",&n);
    long long res = 0;
    res = res + n / 2 + n / 3 + n / 5 + n / 7; //2 3 5 7
    res = res - n / 6 - n / 10 - n / 14 - n / 15 - n / 21 - n / 35;
    res = res + n / 30 + n / 42 + n / 70 + n / 105;
    res = res - n / 210;
    printf("%lld",n - res);
    return 0;
}