大水题

大水题

https://ac.nowcoder.com/acm/problem/15079

题目

给出一个数 n,求 1 到 n 中,有多少个数不是 2、5、11、13 的倍数。

解题思路

根据容斥原理,先不考虑重叠的情况,把 2、5、11、13 的所有倍数的数目先计算出来,然后再把计数时重复计算的数目排斥出去。
所以,1 到 n 中,这四个数的倍数的总数为
cnt = n/2 + n/5 + n/11 + n/13
- n/(2*5) - n/(2*11) - n/(2*13) - n/(5*11) - n/(5*13) - n/(11*13)
+ n/(2*5*11) + n/(2*5*13) + n/(2*11*13) + n/(5*11*13)
- n/(2*5*11*13)
最终结果用 n 减去这四个数的倍数的数目,即 n - cnt

C++代码

#include<iostream>
using namespace std;

int main(){
    long long n;
    while(cin >> n){
        long long cnt = n/2 + n/5 + n/11 + n/13;
        cnt -= (n/10 + n/22 + n/26 + n/55 + n/65 + n/143);
        cnt += n/110 + n/130 + n/286 + n/715;
        cnt -= n/1430;
        cnt = n - cnt;
        cout << cnt << endl;
    }
    return 0;
}
全部评论

相关推荐

阿里巴巴各部门年终奖开奖了,有人拿到了220w
真烦好烦真烦:拿命换钱呢,公司给你220万,肯定是因为你对公司的贡献大于220万,想想要多厉害多累才能达到
投递阿里巴巴集团等公司10个岗位 >
点赞 评论 收藏
分享
03-26 22:55
门头沟学院 Java
烤冷面在迎接:河南byd,应该就是郑大了。不过24届计算机是特殊情况,那年除了九✌和强2,以及两三个关系够硬的双非,其他的都是炮灰,感觉是十几年来互联网行业最烂的一年,如果想了解最新的就业情况,得找现在的大四。
点赞 评论 收藏
分享
野猪不是猪🐗:现在的环境就是这样,供远大于求。 以前卡学历,现在最高学历不够卡了,还要卡第一学历。 还是不够筛,于是还要求得有实习、不能有gap等等... 可能这个岗位总共就一个hc,筛到最后还是有十几个人满足这些要求。他们都非常优秀,各方面都很棒。 那没办法了,看那个顺眼选哪个呗。 很残酷,也很现实
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务