zoukankan      html  css  js  c++  java
  • python 入门级教你如何拿到小姐姐微信

     

    第一题:

    首先错误的思路,首先找出  707829217/2+1 里面的所有奇数,然后再利用两个for,来判断 

    import math
    
    
    def func_get_prime(n):
        return filter(lambda x: not [x % i for i in range(2, int(math.sqrt(x)) + 1) if x % i == 0], range(2, n + 1))
    
    
    a = list(func_get_prime(101118460))
    
    for i in a :
        for j in a :
            if i*j == 707829217:
                print(i)
                print(j)
                exit()
        else:
             pass
    View Code

    这样会让算法变复杂,因为首先求这么大一个数里面的全部奇数就已经很难,然后你还用了两个for遍历查询

    def handlerNum(num):
        # 质数大于 1
        if num > 1:
            # 查看是否有其他因子
            for i in range(2, num//2+1):
                if (num % i) == 0:
                    return False
                    break
            else:
                return True
    
        # 如果输入的数字小于或等于 1,不是质数
        else:
            print(num, "不是质数")
    
    for i in range(3,101118460) :
        if 707829217%i == 0 :
            if(handlerNum(i)) :
                j = 707829217//i
                if(isinstance(j,int)):
                    if handlerNum(j):
                        print(i)
                        exit()
    View Code

    输出结果是

    8171
    86627
    View Code

    至此我们已经拿到小姐姐的微信了,我们再来做第二题

    第二题:

    从1到866278171的奇数里面一共有多少个3

    a = 0
    for i in range(1,866278171):
        if i%2 != 0:
            x = str(i)
            num = x.count('3')
            if num :
                a = a+num
                print(a)
    print(a)
    View Code

    虽然已经写出来了,但是感觉很慢。还需优化 

    优化:仅提供一个思路,转换成数学解决方法,判断3在个位,十位 。。。。 出现的情况

  • 相关阅读:
    Swift网络库Alamofire的导入
    iOS书摘之Objective-C编程之道 iOS设计模式解析
    Crash日志分析
    自动布局库--Masonry使用
    Xcode Ghost
    Xcode8-beat升级需谨慎
    UIView剖析之Draw、Size、Layout方法
    Xcode警告忽略
    属性(property)与成员变量(ivar)
    sql server分页存储过程
  • 原文地址:https://www.cnblogs.com/paopao123/p/10760875.html
Copyright © 2011-2022 走看看