or2?Scum! 西安电子科技大学第二届程序设计新生赛(同步赛)

链接:https://ac.nowcoder.com/acm/contest/316/E
来源:牛客网

 

题解: 容斥原理,  四个集合的容斥

A∪B∪C∪D=|A|+|B|+|C|+|D| - |A∩B| - |B∩C| - |C∩A|- |A∩D| - |B∩D| - |C∩D|
+|A∩B∩C|+|A∩B∩D| +|A∩C∩D| +|B∩C∩D| -|A∩B∩C∩D| 

代码

#include <iostream>
#include <cstdio>
using namespace std;
typedef long long ll;
int main(){
    ll n;
    while(scanf("%lld",&n)!=EOF){
        if(n%2==0||n%3==0||n%5==0||n%7==0){
            cout<<"or2 ";
            cout<<n/2+n/3+n/5+n/7  -n/6-n/10-n/14-n/15-n/21-n/35  +n/30+n/42+n/105+n/70  -n/210<<endl;
        }
        else{
            cout<<"Scum"<<endl;
        }
    }
    return 0;
}

时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 131072K,其他语言262144K
64bit IO Format: %lld

题目描述

当一个正整数能被2或者3或者5或者7整除,我们定义这个数为or2数 给定正整数 ,
求问这个数是否是or2数,如果是,则输出他是第几大的or2数,否则输出Scum

输入描述:

多组数据(不超过1e5组,读到文件结束)

每组数据一行:一个正整数x(1≤x≤1e18)

输出描述:

对于每个输入,输出一行。
如果是or2数,输出or2 c,表示它是第c大的or2数 否则输出字符串Scum

 

示例1

输入

复制

2
4
11

输出

复制

or2 1
or2 3
Scum

转载于:https://www.cnblogs.com/UUUUh/p/10284045.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值