How to calculate smallest number with certain number of divisors?

前端 未结 9 1378
野性不改
野性不改 2020-12-29 07:51

From Project Euler problem 500

The number of divisors of 120 is 16. In fact 120 is the smallest number having 16 divisors.

Find the smalle

9条回答
  •  情话喂你
    2020-12-29 08:37

    Fully functional code.

    def find_smallest_number(num):
        number2=0
    
        if(num%8==0):
            number2=min(2**((num/4)-1)*3**1*5**1 , 2**((num//2)-1)*3**1)
        elif(num%9==0):
            number2=2**((num/9)-1)*3**2*5**2   
        elif(num%2==0 and num%3==0):
            number2=2**((num/6)-1)*3**2*5**1   
        elif((num%4==0)):
            number2=2**((num/4)-1)*3**1*5**1
        elif(num%2==0):
            number2=2**((num/2)-1)*3**1
        else:
            number2=2**(num-1)         
    
        return number2   
    
    
    num=32
    print("The number of divisors :",num)
    result=find_smallest_number(num)
    print("The smallest number having",num," divisors:",result)
    

提交回复
热议问题