北京妞儿找IT男图的算数思路

最近这图火了,先不管是否有这人这事或者真人真事,耿直的IT男看到这图是一道算数题,真真实实的一道算法题,那就开始算吧。
在这里插入图片描述
问题描述:
  质数分解:数字(num)707829217分解两个质数,
  微信ID:大写字母NY后面跟着两个质数,大的在前,小的在后
  出现3的次数:找出1到微信号的奇数序列中,出现3的次数

一, 质数分解(prim)

解释:

  质数定义为在大于1的自然数中,除了1和它本身以外不再有其他因数,就是说能被1和自身整除,不能被其他数字整除。

思路:

  由于确定了707829217是两个质数之积,所以只需要求出其中一个,另一个一除就出来了。
  而较小的质数肯定小于等于srqt(707829217)【srqt:平方根】,即小于等于这个num开方后的数字。
只需要使用基本的筛法,筛出srqt(707829217)内的所有质数。质数表求出来后,枚举所有质数,判断这个质数是否可以被707829217整除,如果可以,就找到了两个质数。

二, 微信ID:

  微信ID为:NY+(prim.big)+(prime.small)

三, 出现3的次数

  计算出微信号之后,生成1到微信号的奇数序列,再把这个序列转成字符串序号,用count计算这个字符串序号出现3的次数

结果(用python写的)

  我也不知道我这算法对不对,加上避免有伸手党直接抄袭答案等,我就给部分地方打了码

在这里插入图片描述
  如有不同或者新的想法,欢迎前来评论~

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值