1284 2 3 5 7的倍数
时间:2022-05-07
本文章向大家介绍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
题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1284
分析:
此题是典型的容斥原理题,一开始理解错误,写成了丑数题,反正一直超时,后来才发现;
要求不是2,3,5,7的倍数的个数,可以先求出2,3,5,7的个数,之后通过n减去2,3,5,7的倍数的个数可求得不是2,3,5,7的倍数的个数;
而要知道2,3,5,7的倍数的个数,只需要分别知道2的倍数个数,3的倍数个数,5的倍数个数,7的倍数的个数,之后通过容斥原理(先不考虑重叠的情况,把包含于某内容中的所有对象的数目先计算出来,然后再把计数时重复计算的数目排斥出去,使得计算的结果既无遗漏又无重复,这种计数的方法称为容斥原理--简而言之,就是对于重叠次数只有奇数次的,我们加上,重叠次数为偶数次的,我们要减去)可得到。最后即可得到不是2 3 5 7的倍数的个数。
下面给出AC代码:
1 #include <bits/stdc++.h>
2 using namespace std;
3 int main()
4 {
5 __int64 n;
6 while(scanf("%I64d",&n)!=EOF)
7 {
8 __int64 a=n/2;
9 __int64 b=n/3;
10 __int64 c=n/5;
11 __int64 d=n/7;
12 __int64 ab=n/6;
13 __int64 ac=n/10;
14 __int64 ad=n/14;
15 __int64 bc=n/15;
16 __int64 bd=n/21;
17 __int64 cd=n/35;
18 __int64 abc=n/30;
19 __int64 abd=n/42;
20 __int64 acd=n/70;
21 __int64 bcd=n/105;
22 __int64 abcd=n/210;
23 __int64 ans=a+b+c+d-ab-ac-ad-bc-bd-cd+abc+abd+acd+bcd-abcd;
24 printf("%I64dn",n-ans);
25 }
26 return 0;
27 }
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 详解Android 8.0以上系统应用如何保活
- 秒级去重:ClickHouse在腾讯海量游戏营销活动分析中的应用
- android studio 3.4配置Android -jni 开发基础的教程详解
- android TextView中识别多个url并分别点击跳转方法详解
- Android WebView支持input file启用相机/选取照片功能
- 谈谈RxJava2中的异常及处理方法
- Android Koin2基本使用的那件事儿
- 一篇文章弄懂kotlin的扩展方法
- 浅谈Android客户端与服务器的数据交互总结
- Android 连接匿名WiFi的示例代码
- Android自定义图文跑马灯效果
- Android自定义View实现可展开、会呼吸的按钮
- Android仿google now效果的呼吸按钮
- Kotlin中双冒号::使用方法
- android实现简单左滑删除控件