Day2 这是我最爱的复制粘贴

平时博主最爱进行的操作就是复制粘贴,能省力一点是一点不是嘛
在这里插入图片描述
今天我们就来讲讲怎么偷懒的题目,复制粘贴就完事啦!

题目

现有一字母A,给定一个小于1000的数n,要求只使用复制粘贴使得A的数目到达n,而且每次复制操作只能复制目前有的全部A,比如现在已经有6个A,必须复制6个A,不可以是2、3、4、5个。问最少需要执行几次操作可以达到目的

如n=3

A
1 复制 A
2 粘贴 AA
3 粘贴 AAA
答案为3

解答

只能复制全部,那就是如果想复制不是数目为1的A的话,那这个数目必须得是n的一个约数,所以如果n没有约数,即n为素数,那就每次粘贴一次到n就行了,即操作n次

没想到这么快就已经解决了问题的一半了,我可太聪明了。

在这里插入图片描述
那么接下来我们来解决不是素数的情况

我们取一个数来分析一下,比如说6,6=2*3,我们先来算一下分别复制粘贴到2和3,在到6,所经历的次数是否一样

先2再6

A
1 复制 A
2 粘贴 AA
3 复制 AA
4 粘贴 AAAA
5 粘贴 AAAAAA
答案为5

先3再6

A
1 复制 A
2 粘贴 AA
3 粘贴 AAA
4 复制 AAA
5 粘贴 AAAAAA
答案为5

我们发现先到2和先到3最后得出的结果是一样的。
而且得到的结果都是5,是2+3的结果

我们来分析一下,首先到一个素数n1需要的次数是n1次,因为n1*n2=n,所以需要粘贴的次数为n2-1次,然后还需要1次复制,所以最后需要的次数是n1+n2次,所以不管先到2还是先到3最后的结果是一样的撒

那肯定得有人问了,那像24这种234的,我为啥不能4*6呢

在这里插入图片描述
那不刚讲了6的吗,6他不得先到2或3吗,你搁着寻思个啥呢,是不是上课从来不认真听讲!

所以如果是素数的话,最后就是他所有的最小公约数的和。

啥?代码实现整不明白?

你从1到n循环,n能整除的累加一下不就好了?

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值