https://ac.nowcoder.com/acm/contest/316/E

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

题目描述

当一个正整数能被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

这道题,x的范围为1e18,很明显不能打表,进行离线解决~~

但是我们可以打表找规律,不过这个规律可不好找~~

最后,我们来分析一下问题,这个题要求是输入n,求从1到n有多少个能被2,3,5,7整除的数

那么,能被2整除的数有n/2个,能被3整除的个数有n/3个,能被5整除的个数有n/5个,能被7整除的个数有n/7个

以上个数相加就可得出大致答案了,要想得出正确答案还要查重一下,比如:6能被2整除但是也能被3整除,那在计算的时候6被加入了两次,同样2*5,2*7,3*7,3*5,5*7,也被计算了两次,所以总数sum要减去n/6,n/14,n/21,n/35,,,,,,,,,

本以为这样就完了,,还有问题要考虑,比如:42,42能被2,3,7整除,所以加入三次,但是,还能被6,14,21整除,又减去了三次,所以还要重新加入一次,所以sum要加上n/(2*3*7)+(2*5*7)+(3*5*7)+(2*3*5),加上之后,这个数2*3*5*7==210又被多加入一次,所以要减去n/210

这时候sum就是要求的结果了

代码:

#include<bits/stdc++.h>
using namespace std;
#define mx 220
int main (){long long  n=1;//一下注释是证明上述的正确性,不信的同学可以自己输出下/*for(int i=1;i<=mx;i++){if(i%2==0) printf("%d  ",i);}printf("\n");for(int i=1;i<=mx;i++){if(i%3==0) printf("%d  ",i);}printf("\n");for(int i=1;i<=mx;i++){if(i%5==0) printf("%d  ",i);}printf("\n");for(int i=01;i<=mx;i++){if(i%7==0) printf("%d  ",i);}printf("\n");for(int i=1;i<=mx;i++){if(i%6==0) printf("%d  ",i);}printf("\n");for(int i=1;i<=mx;i++){if(i%10==0) printf("%d  ",i);}printf("\n");for(int i=1;i<=mx;i++){if(i%14==0) printf("%d  ",i);}printf("\n");for(int i=1;i<=mx;i++){if(i%15==0) printf("%d  ",i);}printf("\n");for(int i=1;i<=mx;i++){if(i%21==0) printf("%d  ",i);}printf("\n");for(int i=1;i<=mx;i++){if(i%35==0) printf("%d  ",i);}printf("\n");printf("%lld\n",n);*/while(~scanf("%lld",&n)){if(n%2&&n%3&&n%5&&n%7) {printf("Scum\n");continue;}printf("or2 ");long long  sum=0;sum+=n/2;sum+=n/3;sum+=n/5;sum+=n/7;sum-=n/6;sum-=n/10;sum-=n/14;sum-=n/15;sum-=n/21;sum-=n/35;sum+=n/30;sum+=n/70;sum+=n/42;sum+=n/105;sum-=n/210;printf("%lld\n",sum);}return 0;
}
今天坐地铁的时候,看见旁边的老外哭的一塌糊涂,边哭边对着电话那头说:你跟我在一起根本就不是因为爱情,你只是为了学英语!

这可能是个真实的故事~~

当一个正整数能被2或者3或者5或者7整除,我们定义这个数为or2数 给定正整数 , 求问这个数相关推荐

  1. 蓝桥杯 算法训练 - 连续正整数的和 78这个数可以表示为连续正整数的和,1+2+3,18+19+20+21,25+26+27。   输入一个正整数 n(<=10000)   输出 m 行(n有m

    问题描述 78这个数可以表示为连续正整数的和,1+2+3,18+19+20+21,25+26+27. 输入一个正整数 n(<=10000) 输出 m 行(n有m种表示法),每行是两个正整数a,b ...

  2. 已知一个带有表头的单链表,结点结构为data-link,假设该链表只给出了头指针list。在不改变链表的前提下,请设计一个尽可能高效的算法,查找链表中倒数第k个位置上的结点(k为正整数)。

    今天和大家分享一道2009年代码为408的一道真题: 已知一个带有表头的单链表,结点结构为data-link,假设该链表只给出了头指针list.在不改变链表的前提下,请设计一个尽可能高效的算法,查找链 ...

  3. 判断一个数是否为整数、正整数、小数通用算法

    思路 用它本身减去它保留0位小数(建议不要四舍五入,直接舍去小数部分)的值和0去比较 如果大于0,说明这个数是小数 如果等于0,说明这个数是整数 不会出现小于0的情况. 如果还要判断是否是正整数,那么 ...

  4. 什么是质因数,质因数(素因数或质因子)在数论里是指能整除给定正整数的质数

    什么是质因数,质因数(素因数或质因子)在数论里是指能整除给定正整数的质数 质因数(素因数或质因子)在数论里是指能整除给定正整数的质数. 除了1以外,两个没有其他共同质因子的正整数称为互质. 因为1没有 ...

  5. c++ 【1101】给定正整数a,b,ca,b,c。求不定方程 ax+by=cax+by=c 关于未知数xx和yy的所有非负整数解组数。

    [题目描述] 给定正整数a,b,ca,b,c.求不定方程 ax+by=cax+by=c 关于未知数xx和yy的所有非负整数解组数. [输入] 一行,包含三个正整数a,b,ca,b,c,两个整数之间用单 ...

  6. JAVA实现输入一个整数,输出该数二进制表示中1的个数(《剑指offer》)

    题目: 输入一个整数,输出该数二进制表示中1的个数.其中负数用补码表示. 这个题目有个比较有意思并且被公认的解法,我就先贴答案吧: public class Solution {public int ...

  7. 神经网络结构设计指导原则——输入层:神经元个数=feature维度 输出层:神经元个数=分类类别数,默认只用一个隐层 如果用多个隐层,则每个隐层的神经元数目都一样...

    神经网络结构设计指导原则 原文   http://blog.csdn.net/ybdesire/article/details/52821185 下面这个神经网络结构设计指导原则是Andrew NG在 ...

  8. 输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示

    转自http://my.oschina.net/ithaibo/blog/142655 题目: 输入一个整数,输出该数二进制表示中1的个数.其中负数用补码表示. 题目引自http://ac.jobdu ...

  9. 华为:N个同学站成一排,发饼干至少每人一个,相邻分值高的可以多分一个以上饼干,求问至少需要发多少个饼干满足要求

    N个同学站成一排,发饼干至少每人一个,相邻分值高的可以多分一个以上饼干,求问至少需要发多少个饼干满足要求 华为面试被问手撕这道题. 输入分值:[1,2,3] 输出:5 解析:3+1+1 = 5. 但是 ...

  10. Java黑皮书课后题第8章:***8.35(最大块)给定一个元素为0或者1的方阵,编写程序,找到一个元素都为1的最大的子方阵。程序提示用户输入矩阵的行数。然后显示最大的子方阵的第一个元素、行数

    ***8.35(最大块)给定一个元素为0或者1的方阵,编写程序,找到一个元素都为1的最大的子方阵.程序提示用户输入矩阵的行数.然后显示最大的子方阵的第一个元素.行数 题目 题目描述与运行示例 破题 代 ...

最新文章

  1. windows 如何cmd启动redis
  2. 商用故事|泰华amp;华为手牵手,点亮城市照明
  3. 基于经验的SOA成功原则
  4. outlook邮箱邮件大小限制_配置邮箱的邮件大小限制: Exchange 2013 帮助 | Microsoft Docs...
  5. Python常用命令行(持续更新)
  6. QT显式调用VC开发的DLL
  7. 华为桌面云 服务器可以虚拟多少,【华为桌面云】案例:单服务器环境且只有两块本地SATA盘创建虚拟机非常慢...
  8. JQuery Datatables 样式Style
  9. C/C++:Windows编程—调用DLL程序的2种方法
  10. 2020年10月Oracle安全补丁:四个远程无凭证漏洞 两个内核级别漏洞需关注
  11. 【月报】Java知音的四月汇总
  12. JS保证输入框里面的数值是数字
  13. [转]supervisor 安装、配置、常用命令
  14. 蜡染印花的跟踪印花与二次整纬
  15. linux下搭建博客21天打卡Day6
  16. C语言猜数字小游戏---详解+源码
  17. 分享写SQL的21个好习惯!
  18. Ubuntu Linux,及Python matplot,安装Times New Roman等字体,让图标签可以用Times New Roman等字体
  19. crate部署(crateDB)
  20. 向国外发送邮件用什么邮箱?

热门文章

  1. C#语言实例源码系列-实现SMTP服务发送邮件
  2. 在绝望中寻找希望,人生终究辉煌——俞敏洪语录
  3. 纳税服务系统【条件查询数据回显、分页】
  4. 清风数学建模课笔记-多元回归分析
  5. Codeforces 208A Dubstep
  6. html5 球形选择,HTML5/SVG使用D3.js构建的随机球形(球幕)照片墙
  7. zabbix报错:Cannot perform request: error:141A318A:SSL routines:tls_process_ske_dhe:dh key too small
  8. Django学习(二):数据库操作
  9. 【Docker】Docker命令整理示例
  10. Mybatis Laz-Load功能实现代码赏析(原创)