有趣的两道数论题——2017华杯初赛小高组

首发于订阅号 嗨编程,这是一个以嗨为目标的编程订阅号(仅仅是目标而已),扫码可关注,争取每周5更。

5.从1—20这20个整数中任意取11个数,其中必有两个数的和等于() A. 19    B.20    C.21    D.22

答案:C

解析:

最小的11个数是1~11,当中最大的两个数之和是21,最大的11个数是10~20,当中最小的两个数之和是21,即可确定答案。

9.在一个自然数的所有因数中,能被3整除的因数比奇因数多5个,那么这个自然数最小是_____

答案:72

解析:考虑对这个自然数做质因数分解,分析其质因数及其个数,进而计算出这个自然数。

较小的质数有2,3,5,7,11...既然存在被3整除的因数,那么这个自然数里一定有3作为质因数,然后尝试枚举能被3整除的因数,从小到大依次是2*3=6,3*3=9,2*2*3=12,2*3*3=18,2*2*2*3=24,2*2*3*3=36,至此已满足条件,由此得到的自然数是2*2*2*3*3=72,如果考虑到72也是其自己的因数,那么1也是72的因数,仍然满足能被3整除的因数比奇因数多5个的条件,问题得解。

时间: 2024-10-11 13:25:48

有趣的两道数论题——2017华杯初赛小高组的相关文章

被虐的两道数论题

我说……我这么闲,那么……写篇日志吧,谨以此纪念我无限趋向于0的智商,那天……犯了个傻的两道题……顺便orz一下HGR以及HYY神犇……        Problem A:        给定n,k,求任意一个序列a,使得∏(1≤i≤k)(1+1/ai)=1+(2^k-1)/n.(1≤n≤2^31,1≤k≤31) 本来这题目是很水的……但是……我当即立断,机智地化了简:(Σ(b∈[1,k])ab1ab2ab3…abp)/∏(1≤i≤k)ai=(2^k+n-1)/n.随后我发现,ai与ai+1约分

两道dp——ucf 2017

G——直接把每种物品拆成一个个的,就可以用线性dp扫一次做完 /* 直接拆成一个一个的 dp[i][j]表示用j次机会把前i个拿下的概率 初始状态:dp[i][i]=dp[i-1][i-1]*p[i] dp[i][j]=dp[i-1][j-1]*p[i]+dp[i][j-1]*(1-p[i]) */ #include<bits/stdc++.h> using namespace std; int n,tot; double p[3000],dp[2][20000]; int main(){ i

数论题总结

这几天做了几道微不足道的数论题,感觉做法都十分的高啊,我这种僵化的思想是很难有那样的切题知识水平的.然后做了几道题,感觉也有点熟悉数学的那一套理论了,虽然我还是太弱,但是有点东西还是要讲出来的嘛,一起谈笑风生,积累人生经验.闷声发大财虽然好,但是是不支持的. 上面那句话看不懂就无视吧. 那么对于数论题,我们应该如何下手呢??我总结了一些分析技巧和优化技巧,希望有用(希望考场推得出来). 题目分析: 1.题目给的很直接了,让你求这个那个. 以两道同年的NOI题目为例. 1.荒岛野人 Savage

两道有意思的题目

碰到两道有意思的题目,记录一下. 题目一: 问,对于任意一个正整数,是否存在一个它的倍数全是由1和0组成? 例如: 1 * 1 = 1 2 * 5 = 10  (2的5倍是10,10由1和0组成) 3 * 37 = 111 (3 的 37 倍是111,111 全部由1组成) 4 * 25 = 100 (4 的 25 倍是100,100 由1和0组成) 5 * 20 = 100 (5 的 20 倍是100,100由1 和 0 组成) …… 现在需要判断,随便给一个正整数,是否存在一个它的倍数满足题

[sdut]2623+[sdut]2878//四五届省赛中的两道数学期望

两道数学期望的题今天一起总结上来. 1.the number of steps(第四届省赛) 1 #include <iostream> 2 #include <string.h> 3 #include <iomanip> 4 using namespace std; 5 double dp[100][100]; 6 int n; 7 double a,b,c,d,e; 8 9 int main() 10 { 11 while(cin>>n&&

bzoj3209:3209: 花神的数论题

觉得还是数位dp的那种解题形式但是没有认真的想,一下子就看题解.其实还是设置状态转移.一定要多思考啊f[i][j]=f[i-1][j]+g[i-1][j] g[i][j]=f[i-1][j-1]+g[i-1][j]; 然后我就开始gang.然后先是for for j没有从0开始.然后是cnt增加的时候忘了*,接着是1<<tmp没有用ll,还有是读入优化没有用longlong,最后成功的过了若干较小的数据.WAWAWAWAWA5发.最后发现指数不能直接取模!.终于AC了喜极而泣TAT =>

分享两道笔试题目

前几天,给成都的某家公司投了个简历,给发了两道笔试题目,与大家分享一下.附上自己的解题过程,写得不好的地方,还请博友多多指教. 一 .  设计程序输出销售及收费清单 一个电商平台对在其平台之上销售的除了书籍.食品以及药物以外的商品收取 10% 的费用.而对于进口的商品则额外收取 5% 的附加费用.对于平台抽取的费用计算时,舍入的规则是:对于 n% 抽取率,价格为 p的商品, np/100 的值就近舍入到 0.05(如: 7.125 -> 7.15, 6.66 -> 6.70 ). 卖家卖出一些

两道拓扑排序的问题

多久没写东西了啊.... 两道拓扑排序Liv.1的题....方法是一样的~~ <拓扑排序·二> 题目:http://hihocoder.com/contest/hiho81/problem/1 一个电脑网路,单向边,如果存在边u->v,那么u的病毒会感染到v. 要点,不存在环!那么如果u的入度=0的话,那么u中的病毒数不会再变化. 想到拓扑排序.不断删去入度为0的点.每次删去节点u,如果存在u->v,那么病毒数 num[v] += num[u].问题解决. (用queue实现拓扑排

病毒的侵扰和再侵扰两道AC自动机的应用

HDU2896 病毒的侵扰 http://vjudge.net/problem/viewProblem.action?id=16404 题目大意: 记录每个病毒的编号,并给出一些网站的源码,分别输出网站及其对应编号中所含病毒的编号,没有就不输出 最后输出有病毒网站的个数 这道题需要注意的是这个所有ASCII码均会用到,所以我之前傻傻地写str[i]-'a'还不知为什么会错简直苦逼~~ 这里直接用ch[now][str[i]]找到对应位置即可 因为要记录编号,为了防止重复访问,我对query中进行