码迷,mamicode.com
首页 > 其他好文 > 详细

小三学算术

时间:2019-08-18 09:58:21      阅读:73      评论:0      收藏:0      [点我收藏+]

标签:数学   ext   pre   content   div   分组   amp   nbsp   三分   

题目描述

小三的三分球总是很准的,但对于数学问题就完全没有想法了。他希望你来帮他解决下面的这个问题:对于给定的n,从1!、2!、3!、...、n!中至少删去几个数,才可以使剩下的数的乘积为完全平方数?

输入

仅一行,包含一个整数n(1≤n≤500)。

输出

第一行包含一个整数k,表示最少需要删去的数字个数。
接下来一行,从小到大排列的k个[1,n]之间的整数,给出删数的方案。如果方案不止一种,输出方案从小到大排序序列最小的一组即可。

样例输入

5

样例输出

2
2 5

提示

去掉2!和5!,剩下的是4!,3!和1!,它们的乘积为4! * 3! * 1!= 24 * 6 = 144

 

分析:数学一本通上一本非常神的题.先对每个数分解质因数,如果一个数是完全数,那么它的所有质因子的次数一定要是偶数,这样的话很难操作,没有什么特别好的方法.尝试搜索,因为不知道要删掉几个数,可以用迭代深搜,可能会惊奇地发现自己过了,因为这道题有一个结论:答案不超过3.

先把阶乘两两分组,(1*2!)*(3!*4!)*(5!*6!)......每一组前面的数会被后面的数所覆盖,这些数的质因子的次数一定是偶数,那么把每一组对答案有影响的数给提出来:2*4*6*......再提一个2出来:2*(1*2*3*......)=2!*(n/2)!那么删掉这两个阶乘就好了.这是n为偶数的情况,如果n为奇数,那么就把最后单独的那一个给删掉,然后就变成了偶数的情况,所以最多删3个数.

 

小三学算术

标签:数学   ext   pre   content   div   分组   amp   nbsp   三分   

原文地址:https://www.cnblogs.com/Accpted/p/11371385.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!