VWO Problem 2 2016

What is the smallest positive integer n n such that n n n^n does not divide 2016 ! 2016! ?

Notation: ! ! is the factorial notation. For example: 8 ! = 1 × 2 × 3 × . . . × 8 8! = 1 \times 2 \times 3 \times ... \times 8


The answer is 47.

This section requires Javascript.
You are seeing this because something didn't load right. We suggest you, (a) try refreshing the page, (b) enabling javascript if it is disabled on your browser and, finally, (c) loading the non-javascript version of this page . We're sorry about the hassle.

3 solutions

The prime factor p q p^q of a factorial r ! r! is given by q = k = 1 r p k q = \displaystyle \sum_{k=1}^\infty \left \lfloor \dfrac r{p^k} \right \rfloor . The smallest n n such that n n n^n does not divide 2016 ! 2016! is therefore the smallest prime p p with q < p q < p . Then q < r p q < \left \lfloor \dfrac rp \right \rfloor . Since p q p \approx q , we have q 2 r = 2016 q^2 \approx r = 2016 , q 2016 44.90 \implies q \approx \sqrt{2016} \approx 44.90 . This means that p > q p > q is the smallest prime greater than 44.90, which is 47. We note that q < 2016 47 = 41 q < \left \lfloor \dfrac {2016}{47} \right \rfloor = 41 . This means that 4 7 41 2016 ! 47^{41} \mid 2016! but for any q > 41 q > 41 , 4 7 q 2016 ! 47^q \nmid 2016! and 4 7 47 2016 ! 47^{47} \nmid 2016! . Therefore n = p = 47 n=p=\boxed{47} .

H K
Mar 7, 2017

Clearly, n should be a prime (try to see why). Knowing that 2016 is about 2025 = 45², we will look at some primes that are close to 45. However, 43 does not work since 43² < 2016 such that 2016! contains at least 43 factors of 43 and therefore, 43^43 divides 2016!. Now, we look at the smallest prime that is greater than 43, which happens to be 47. Since 47² = 2209 > 2016, it is plain that 2016! cannot contain the factor 47 at least 47 times. Hence, 47^47 does not divide 2016! and it is also teh smallest positive integer with this property.

Zhiqian Chen
Aug 8, 2020

I wrote a Python program that worked out the answer.

1
2
3
4
5
6
import math,sys
a=math.factorial(2016) #2016!
for i in range(2016):
    if a%(i**i)!=0: #If it's not divisible
        print(i) #Print the answer
        sys.exit() #End of the program

Output:

1
47

0 pending reports

×

Problem Loading...

Note Loading...

Set Loading...