Experimental Educational Round: VolBIT Formulas Blitz K

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Experimental Educational Round: VolBIT Formulas Blitz K相关的知识,希望对你有一定的参考价值。

Description

IT City company developing computer games decided to upgrade its way to reward its employees. Now it looks the following way. After a new game release users start buying it actively, and the company tracks the number of sales with precision to each transaction. Every time when the next number of sales is not divisible by any number from 2 to 10 every developer of this game gets a small bonus.

A game designer Petya knows that the company is just about to release a new game that was partly developed by him. On the basis of his experience he predicts that n people will buy the game during the first month. Now Petya wants to determine how many times he will get the bonus. Help him to know it.

Input

The only line of the input contains one integer n (1 ≤ n ≤ 1018) — the prediction on the number of people who will buy the game.

Output

Output one integer showing how many numbers from 1 to n are not divisible by any number from 2 to 10.

Examples
input
12
output
2
容斥原理
#include<iostream>
#include <algorithm>
#include<cstdio>
using namespace std;
typedef long long LL;
int num[20];
int n;
LL sum;//n是num[]的元素个数
LL m;
LL gcd(LL a,LL b)
{
    if(b==0) return a;
    return gcd(b,a%b);
}
LL lcm(LL a,LL b)
{
    return a*b/gcd(a,b); //这是求最小公倍数的方法
}
LL dfs(LL lcmn,int id)    //这里传进来的lcmn是long long !!!
{
    if(id<n-1) return dfs(lcmn,id+1)-dfs(lcm(lcmn,num[id+1]),id+1);
    return m/lcmn;
}
int main()
{
    int t;
    n=9;
    cin>>m;
    for(int i=0; i<n; i++)
    {
        num[i]=i+2;
    }
    sort(num,num+n);
    sum=0;
    for(int i=0; i<n; i++)
        sum+=dfs(num[i],i);
    cout<<m-sum<<endl;
    return 0;
}

  

以上是关于Experimental Educational Round: VolBIT Formulas Blitz K的主要内容,如果未能解决你的问题,请参考以下文章

Experimental Educational Round: VolBIT Formulas Blitz D

Experimental Educational Round: VolBIT Formulas Blitz C

Experimental Educational Round: VolBIT Formulas Blitz F

C++ VS 错误:提供 std::experimental::filesystem 的 <experimental/filesystem> 标头已被 Microsoft 弃用,并将被删除

constexpr 函数内的 std::experimental::optional

std::experimental::对于 ndk/clang 是可选的