Codeforces--630K--Indivisibility(容斥)
Indivisibility
Crawling in process...
Crawling failed
Time Limit:500MS
Memory Limit:65536KB 64bit IO Format:%I64d & %I64u
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.
Sample Input
12
2
求1--n之间有多少个数可以不被2--10中的任何一个数整除,首先2--10中的数可以由2,3,5,7中的几个数组合表示,所以n/2+n/3+n/5+n/7包含需要的所有的数,但是其中也有重合的部分,比如12是2,3,的倍数,所以需要从2,3,5,7中任取2--4个数进行组合,去除重复的
#include<iostream>
using namespace std;
int main()
{
__int64 n;
while(cin>>n)
{
__int64 m=n/2+n/3+n/5+n/7-n/6-n/10-n/14-n/15
-n/21-n/35+n/30+n/70+n/42+n/105-n/210;
m=n-m;
cout<<m<<endl;
}
return 0;
}
最新文章
- codeforces 632+ E. Thief in a Shop
- Command调用存储过程小实例
- VMWare虚拟机设置固定ip上网方法
- guava
- 查看SQL SERVER数据库运行参数和连接数
- eclipse执行单元测试报CreateProcess error=87的解决方法
- python模块学习之random
- 王立平--string.Empty
- 谈谈NIO和IO
- MyBatis学习(六)MyBatis关联映射之一对多映射
- 36、IO模型与socketserver实现并发
- mac os x下的程序快速切换快捷键
- 【MySQL】初识数据库及简单操作
- Lodop打印控件 超文本自动分页
- java发送邮件高级篇
- PAT A1128 N Queens Puzzle (20 分)——数学题
- Jquery----对文档操作
- 使用LinkedHashMap来实现一个使用LRU(Least Recently Used)算法的cache
- Model1与Model2
- Django中的session于cookie的用法