zoukankan      html  css  js  c++  java
  • EularProject 32: 数字1-9排列构成乘法等式

    Pandigital products
    Problem 32
    We shall say that an n-digit number is pandigital if it makes use of all the digits 1 to n exactly once; for example, the 5-digit number, 15234, is 1 through 5 pandigital.

    The product 7254 is unusual, as the identity, 39 × 186 = 7254, containing multiplicand, multiplier, and product is 1 through 9 pandigital.

    Find the sum of all products whose multiplicand/multiplier/product identity can be written as a 1 through 9 pandigital.

    HINT: Some products can be obtained in more than one way so be sure to only include it once in your sum.

    Answer:
    45228
    Completed on Sat, 25 Jul 2015, 15:13
    python code:

    from math import sqrt
    def func(x):
        s0=set(str(x))
        for i in range(2,min(100,int(sqrt(x)+1))):
            if x%i==0:
                s1=set(str(i))
                s2=set(str(x//i))
                s=s0|s1|s2
                if len(s)==9 and '0' not in s:
                    return True
        return False
    
    result=0
    for i in range(1000,9999):
        Pstr=str(i)
        if len(set(Pstr))==4 and '0' not in Pstr:
            if func(i):
                result+=i
                print(i)
    
    print(result)

    这里由于要求乘积不能反复,能够考虑对乘积候选项循环推断,把满足条件的加起来,而且非常easy反证证明乘积项数字位数仅仅能为4。

    数字1-9是一个有趣的问题,很多其它问题能够參考
    http://www.worldofnumbers.com/ninedig1.htm

  • 相关阅读:
    BUAA_OO_2020_Unit3 Summary
    BUAA_OO_2020_Unit2 Summary
    DataFrame的遍历
    ESMM提升CVR的论文summary
    FaceBook 关于提升CTR的论文研究
    OO终章·GRAND BATTLE
    第三单元规格作业博客总结
    OO电梯单元作业总结
    【OO多项式求导作业总结】
    提问回顾与个人总结
  • 原文地址:https://www.cnblogs.com/llguanli/p/8692611.html
Copyright © 2011-2022 走看看