- #26

- 345

- 37

You are using an out of date browser. It may not display this or other websites correctly.

You should upgrade or use an alternative browser.

You should upgrade or use an alternative browser.

- Challenge
- Thread starter fresh_42
- Start date
- Featured

- #26

- 345

- 37

- #27

- 345

- 37

Code:

```
0123456789 abcde fghik, 1 try a in 123456789, can't start with 0 per fresh_42
0..3456789 1bcde 2ghik, 2 bcde <= 4999, try b in 03
0..3456789 10cde 20hik, 3 rejected repeated 0
0..3456789 13cde 21hik, 3 rejected repeated 1
0.2.456789 1bcde 3ghik, 2 bcde >= 5000, try b in 56789
..2.4.6789 15cde 30hik, 3 cde <= 499 try c in 24
......6789 152de 304ik, 4 de <= 49 rejected no possible values for d
....4.6789 152de 305ik, 4 de >= 50 rejected repeated 5
..2...67.9 154de 308ik, 4 de <= 49 try d in 2
......67.9 1542e 3084k, 5 e <= 4 rejected repeated 4
......67.9 1542e 3085k, 5 e >= 5 rejected repeated 5
..2...678. 154de 309ik, 4 de >= 50 try d in 678
.......78. 1546e 3092k, 5 e <= 4 rejected no possible values for e
..2....78. 1546e 3093k, 5 e >= 5 rejected repeated 3
..2...6.8. 1547e 3094k, 5 e <= 4 rejected repeated 4
..2...6.8. 1547e 3095k, 5 e >= 5 rejected repeated 5
..2....7.. 1548e 3096k, 5 e <= 4 will try e in 2
.......7.. 15482 30964, 5 e <= 4 rejected repeated 4
.......... 15486 30972, stop
```

- #28

fresh_42

Mentor

- 15,542

- 13,639

Too big. I think your algorithms doesn't consider the carries and rejects possible solutions.

Code:`0123456789 abcde fghik, 1 try a in 123456789, can't start with 0 per fresh_42 0..3456789 1bcde 2ghik, 2 bcde <= 4999, try b in 03 0..3456789 10cde 20hik, 3 rejected repeated 0 0..3456789 13cde 21hik, 3 rejected repeated 1 0.2.456789 1bcde 3ghik, 2 bcde >= 5000, try b in 56789 ..2.4.6789 15cde 30hik, 3 cde <= 499 try c in 24 ......6789 152de 304ik, 4 de <= 49 rejected no possible values for d ....4.6789 152de 305ik, 4 de >= 50 rejected repeated 5 ..2...67.9 154de 308ik, 4 de <= 49 try d in 2 ......67.9 1542e 3084k, 5 e <= 4 rejected repeated 4 ......67.9 1542e 3085k, 5 e >= 5 rejected repeated 5 ..2...678. 154de 309ik, 4 de >= 50 try d in 678 .......78. 1546e 3092k, 5 e <= 4 rejected no possible values for e ..2....78. 1546e 3093k, 5 e >= 5 rejected repeated 3 ..2...6.8. 1547e 3094k, 5 e <= 4 rejected repeated 4 ..2...6.8. 1547e 3095k, 5 e >= 5 rejected repeated 5 ..2....7.. 1548e 3096k, 5 e <= 4 will try e in 2 .......7.. 15482 30964, 5 e <= 4 rejected repeated 4 .......... 15486 30972, stop`

Your first solution was close!

- #29

- 345

- 37

Btw, I wonder if there's a way to solve this through logic instead of searching for a solution; I tried a few times, but the solution through logic evaded me.

Code:

```
0123456789 abcde fghik, 1 try a in 123456789, can't start with 0 per fresh_42
0..3456789 1bcde 2ghik, 2 bcde <= 4999, try b in 03
...3456789 10cde 20hik, 3 cde <= 499 rejected repeated 0
...3456789 10cde 21hik, 3 cde >= 500 rejected repeated 1
0...45.789 13cde 26hik, 3 cde <= 499 try c in 04 (this is the line that had a bug... 2*13 = 26, not 21, haha)
....45.789 130de 260ik, 3 de <= 499 rejected repeated 0
....45.789 130de 261ik, 3 de >= 500 rejected repeated 1
0....5.7.9 134de 268ik, 3 de <= 499 try d in 0
.....5.7.9 1340e 2680k, 4 e <= 4 rejected repeated 0
.....5.7.9 1340e 2681k, 4 e >= 5 rejected repeated 1
0....5.78. 134de 269ik, 3 de >= 500 try d in 578
.......78. 1345e 2690k, 4 e <= 4 rejected no values for e
0......78. 1345e 2691k, 4 e >= 5 rejected repeated 1
0....5..8. 1347e 2694k, 4 e <= 4 rejected repeated 4
0.......8. 1347e 2695k, 4 e >= 5 try e in 8
0......... 13478 26956, rejected repeated 6
0....5.7.. 1348e 2696k, 4 e <= 4 rejected repeated 6
0....5.... 1348e 2697k, 4 e >= 5 try e in 5
.......... 13485 26970, stop
```

- #30

fresh_42

Mentor

- 15,542

- 13,639

Code:`0123456789 abcde fghik, 1 try a in 123456789, can't start with 0 per fresh_42 0..3456789 1bcde 2ghik, 2 bcde <= 4999, try b in 03 ...3456789 10cde 20hik, 3 cde <= 499 rejected repeated 0 ...3456789 10cde 21hik, 3 cde >= 500 rejected repeated 1 0...45.789 13cde 26hik, 3 cde <= 499 try c in 04 (this is the line that had a bug... 2*13 = 26, not 21, haha) ....45.789 130de 260ik, 3 de <= 499 rejected repeated 0 ....45.789 130de 261ik, 3 de >= 500 rejected repeated 1 0....5.7.9 134de 268ik, 3 de <= 499 try d in 0 .....5.7.9 1340e 2680k, 4 e <= 4 rejected repeated 0 .....5.7.9 1340e 2681k, 4 e >= 5 rejected repeated 1 0....5.78. 134de 269ik, 3 de >= 500 try d in 578 .......78. 1345e 2690k, 4 e <= 4 rejected no values for e 0......78. 1345e 2691k, 4 e >= 5 rejected repeated 1 0....5..8. 1347e 2694k, 4 e <= 4 rejected repeated 4 0.......8. 1347e 2695k, 4 e >= 5 try e in 8 0......... 13478 26956, rejected repeated 6 0....5.7.. 1348e 2696k, 4 e <= 4 rejected repeated 6 0....5.... 1348e 2697k, 4 e >= 5 try e in 5 .......... 13485 26970, stop`

This is correct, keep on learning!

The manual solution isn't really better than your algorithm. It goes along the following lines:

- If the 0 is in n, then 1 and 5 must be in 2n.
- If the 0 is in 2n, then 5 and 1 must be in n.
- If the 9 is in n, 8 and 4 in 2n must be in it.
- If the 9 in 2n is in, 4 and 8 must be in n.

Last edited:

- #31

mfb

Mentor

- 35,651

- 12,216

Code:

```
for i in range(10000,100000):
if ''.join(sorted(str(i)+str(2*i)))=="0123456789":
print i
break
```

- #32

Bosko

Gold Member

- 17

- 3

3.)Show that $$\int_{0}^{1} dx \int_{x}^{\sqrt{x}} f(x,y)\,dy = \int_{0}^{1} dy \int_{y^2}^{y} f(x,y)\,dx\,.$$

1) If we calculate first by x from 0 to 1 and then by y from x to x

$$\int_{0}^{1} dx \int_{x}^{\sqrt{x}} f(x,y)\,dy $$

2) If we calculate first by y from 0 to 1 and then by x from y

$$\int_{0}^{1} dy \int_{y^2}^{y} f(x,y)\,dx\,.$$

1) and 2) are equal because it is the same function f(x,y) on the same area but calculated on two different ways

$$\int_{}^{} \int_{Area}^{} f(x,y)\,dx dy\,.$$

ThanksYou could do it with the upload button at bottom right of the edit field, but I would appreciate if you wouldn't. Here's a guideline to write formulas on PF:

https://www.physicsforums.com/help/latexhelp/

Last edited:

- #33

- 345

- 37

(100000A + 10000B + 1000C + 100D + 10E + F).2 = (100000C + 10000D + 1000E + 100F + 10A + B)

(100000A + 10000B + 1000C + 100D + 10E + F).6 = (100000D + 10000E + 1000F + 100A + 10B + C)

(100000A + 10000B + 1000C + 100D + 10E + F).4 = (100000E + 10000F + 1000A + 100B + 10C + D)

(100000A + 10000B + 1000C + 100D + 10E + F).5 = (100000F + 10000A + 1000B + 100C + 10D + E)

(300000A + 30000B + 3000C + 300D + 30E + 3F) = (100000B + 10000C + 1000D + 100E + 10F + A)

(200000A + 20000B + 2000C + 200D + 20E + 2F) = (100000C + 10000D + 1000E + 100F + 10A + B)

(600000A + 60000B + 6000C + 600D + 60E + 6F) = (100000D + 10000E + 1000F + 100A + 10B + C)

(400000A + 40000B + 4000C + 400D + 40E + 4F) = (100000E + 10000F + 1000A + 100B + 10C + D)

(500000A + 50000B + 5000C + 500D + 50E + 5F) = (100000F + 10000A + 1000B + 100C + 10D + E)

as A,B,C,D,E,F in 0..9, then

3F mod 10 = A

2F mod 10 = B

6F mod 10 = C

4F mod 10 = D

5F mod 10 = E

(30E+3F) mod 100 = (10F + A)

= (30(5F mod 10)+3F) mod 100 = 10F + (3F mod 10)

so can just try all numbers from F=1 to F=9

(30.(5.1 mod 10) + 3.1) mod 100 = (30.5+3) mod 100 = 53 <> 10.1 + (3.1 mod 10) = 13

(30.(5.2 mod 10) + 3.2) mod 100 = (30.0+6) mod 100 = 6 <> 10.2 + (3.2 mod 10) = 26

(30.(5.3 mod 10) + 3.3) mod 100 = (30.5+9) mod 100 = 59 <> 10.3 + (3.3 mod 10) = 39

(30.(5.4 mod 10) + 3.4) mod 100 = (30.0+12) mod 100 = 12 <> 10.4 + (3.4 mod 10) = 42

(30.(5.5 mod 10) + 3.5) mod 100 = (30.5+15) mod 100 = 65 <> 10.5 + (3.5 mod 10) = 55

(30.(5.6 mod 10) + 3.6) mod 100 = (30.0+18) mod 100 = 18 <> 10.6 + (3.6 mod 10) = 68

(30.(5.7 mod 10) + 3.7) mod 100 = (30.5+21) mod 100 = 71 = 10.7 + (3.7 mod 10) = 71

stop

so F=7, therefore

A = 3.7 mod 10 = 1

B = 2.7 mod 10 = 4

C = 6.7 mod 10 = 2

D = 4.7 mod 10 = 8

E = 5.7 mod 10 = 5

142857.1 = 142857

142857.3 = 428571

142857.2 = 285714

142857.6 = 857142

142857.4 = 571428

142857.5 = 714285

What a beautiful problem!!!! I'd never imagine a 6-digit number multiplied like that would just twist around itself. Really amazing! Well done, fresh_42, you really have an impressive mind!!!

I wonder what deep property lies buried in this number, so that it does that, other than it looks suspiciously like 1/7 = 0.142857...

- #34

- 345

- 37

1E6.1/7 = abcdef.abcdefabcdef..

1E6.1/7 - 1/7 = abcdef

(1E6-1)/7 = abcdef = 999999/7 = 142857 => 999999 = 142857 * 7

similarly

1/7-0.1 = 0.0bcdefabcdefabcdef..

1E7.(1/7-7/70) = bcdefa.bcdefabcdef...

1E6.(3/7) = bcdefa.bcdefabcdef...

1E6.(3/7) - (3/7) = bcdefa = (999999)*3/7 = 428571 => 999999 = (428571)*7/3 = 142857 * 7

therefore 428571 = 142857 * 3

I bet the other ones go through the pattern. What a wonderful trick!! The digits on this 1/7 dude must make a group of some kind, I guess!

- #35

fresh_42

Mentor

- 15,542

- 13,639

It does not only look like it, it is the reason:I wonder what deep property lies buried in this number, so that it does that, other than it looks suspiciously like 1/7 = 0.142857...

If ##\sigma## notes the cyclic shift by one digit (##\sigma(ABCDEF)=BCDEFA##) we get with ##x=ABCDEF##

$$

x \cdot 10^k \equiv \sigma^k(x) \operatorname{mod}7

$$

i.e. ##\sigma## acts like the multiplication by ##10## in ##\mathbb{Z}_7\,,## ##10:7=1.42857 \ldots \,.##

- #36

DeathByKugelBlitz

Gold Member

- 28

- 16

5b could be done in Python?

First calculate 1000! then use python to count the zeroes?

First calculate 1000! then use python to count the zeroes?

- #37

fresh_42

Mentor

- 15,542

- 13,639

I guess a simple count is easier and faster.5b could be done in Python?

First calculate 1000! then use python to count the zeroes?

- #38

DeathByKugelBlitz

Gold Member

- 28

- 16

5b:

import math

A = str(math.factorial(1000))

A.count('0')

472

import math

A = str(math.factorial(1000))

A.count('0')

472

- #39

fresh_42

Mentor

- 15,542

- 13,639

This is not correct. You cannot count those in between!5b:

import math

A = str(math.factorial(1000))

A.count('0')

472

- #40

DeathByKugelBlitz

Gold Member

- 28

- 16

import math

A = (str(math.factorial(1000)))

B = (str(int(math.factorial(1000)))[::-1])

C = len(A) - len(B)

print(C)

- #41

fresh_42

Mentor

- 15,542

- 13,639

It can be done in one line without coding, two, if an explanation line is added!

import math

A = (str(math.factorial(1000)))

B = (str(int(math.factorial(1000)))[::-1])

C = len(A) - len(B)

print(C)

- #42

DeathByKugelBlitz

Gold Member

- 28

- 16

It can be done in one line without coding, two, if an explanation line is added!

I'm new to this, only know what we learnt in lecture

- #43

fresh_42

Mentor

- 15,542

- 13,639

You know that every integer can be written as a product of primes? That's all you need, and some 3rd grader divisions.I'm new to this, only know what we learnt in lecture

- #44

- 8,320

- 7,742

Your approach should work in principle. Expand your calculation of B over several steps and make sure each one is doing what you think it is - I can think of a couple of likely failure points.I'm new to this, only know what we learnt in lecture

As fresh says, there are more elegant solutions.

- #45

DeathByKugelBlitz

Gold Member

- 28

- 16

def reverse_int(n):

return int(str(n)[::-1])

A = (math.factorial(1000))

B = (reverse_int(A))

C = int(B)

D = A.count(0)

E = C.count(0)

print(D - E)

NameError: name 'D' is not defined

- #46

- 345

- 37

That puts me back in kindergarten, oh no.. :(

- #47

fresh_42

Mentor

- 15,542

- 13,639

Why did you count the twos? Were you afraid there might not be enough of them?

That puts me back in kindergarten, oh no.. :(

Last edited:

- #48

- 345

- 37

Because 2.5 = 10, so each group of 1.2.3.4.5.6.7.8.9 = 2.5.(1.3.4.6.7.8.9) = 10.(36,288)

So numbers that end in 1,3,4,6,7,8,9 don't add any zeroes to the result ( ex x3.x6 = (10x+3).(10x+6) = 100x^2 + 10.(3+6).x + 6.3... no zeroes in any x6.x3 for all x in {0..99} ).

As any number ending in 2 will be followed by a number ending in 5 in the sequence {1..1000}, then for x in 0..99 we have x2.x5 = 100x^2 + 10.(2+5)x + 10 = 100x^2+10(7x+1), therefore x2.x5 add zeroes. So we get 1x3 zeroes from 1000, 9x2=18 zeroes from 100, 200, .. , 900, 90x1 zeroes from 10, 20, ..., 90, 110, 120, ..., 190, 210, ... , 290, .. , 990, = 111 zeroes, plus the zeroes from the multiplications of x2.x5.

The zeroes for x2.x5 will be 1 for each x in 0..99... which is 100 numbers (ex 22.25 = 550); then 1 more for each (10.x^2 mod 10 + 7x+1) that is multiple of 10; then 1 more for each (x^2 mod 10 + 7x+1 ) that is multiple of 100. Inspection shows that only x=7, 17, 27, ..., 97 produces that expression as multiple of 10 (ex 372.375 = 139,500), and only 87 produces an expression that is multiple of 100 (872.875 = 736,000). So the x2.x5 terms produce 100 + 10 + 1 = 111 zeroes.

This calculation yields 222 zeroes, but Wolfram-Alpha shows 249 zeroes, so my result is wrong... I'm missing something and I have no clue what... :-(

Back to kindergarten, fbs7!

So numbers that end in 1,3,4,6,7,8,9 don't add any zeroes to the result ( ex x3.x6 = (10x+3).(10x+6) = 100x^2 + 10.(3+6).x + 6.3... no zeroes in any x6.x3 for all x in {0..99} ).

As any number ending in 2 will be followed by a number ending in 5 in the sequence {1..1000}, then for x in 0..99 we have x2.x5 = 100x^2 + 10.(2+5)x + 10 = 100x^2+10(7x+1), therefore x2.x5 add zeroes. So we get 1x3 zeroes from 1000, 9x2=18 zeroes from 100, 200, .. , 900, 90x1 zeroes from 10, 20, ..., 90, 110, 120, ..., 190, 210, ... , 290, .. , 990, = 111 zeroes, plus the zeroes from the multiplications of x2.x5.

The zeroes for x2.x5 will be 1 for each x in 0..99... which is 100 numbers (ex 22.25 = 550); then 1 more for each (10.x^2 mod 10 + 7x+1) that is multiple of 10; then 1 more for each (x^2 mod 10 + 7x+1 ) that is multiple of 100. Inspection shows that only x=7, 17, 27, ..., 97 produces that expression as multiple of 10 (ex 372.375 = 139,500), and only 87 produces an expression that is multiple of 100 (872.875 = 736,000). So the x2.x5 terms produce 100 + 10 + 1 = 111 zeroes.

This calculation yields 222 zeroes, but Wolfram-Alpha shows 249 zeroes, so my result is wrong... I'm missing something and I have no clue what... :-(

Back to kindergarten, fbs7!

Last edited:

- #49

fresh_42

Mentor

- 15,542

- 13,639

I have serious trouble decoding that! I assume that "xN." doesn't mean the hexadecimal number N?Because 2.5 = 10, so each group of 1.2.3.4.5.6.7.8.9 = 2.5.(1.3.4.6.7.8.9) = 10.(36,288)

So numbers that end in 1,3,4,6,7,8,9 don't add any zeroes to the result ( ex x3.x6 = (10x+3).(10x+6) = 100x^2 + 10.(3+6).x + 6.3... no zeroes in any x6.x3 for all x in {0..99} ).

As any number ending in 2 will be followed by a number ending in 5 in the sequence {1..1000}, then for x in 0..99 we have x2.x5 = 100x^2 + 10.(2+5)x + 10 = 100x^2+10(7x+1), therefore x2.x5 add zeroes. So we get 1x3 zeroes from 1000, 9x2=18 zeroes from 100, 200, .. , 900, 90x1 zeroes from 10, 20, ..., 90, 110, 120, ..., 190, 210, ... , 290, .. , 990, = 111 zeroes, plus the zeroes from the multiplications of x2.x5.

The zeroes for x2.x5 will be 1 for each x in 0..99... which is 100 numbers (ex 22.25 = 550); then 1 more for each (10.x^2 mod 10 + 7x+1) that is multiple of 10; then 1 more for each (x^2 mod 10 + 7x+1 ) that is multiple of 100. Inspection shows that only x=7, 17, 27, ..., 97 produces that expression as multiple of 10 (ex 372.375 = 139,500), and only 87 produces an expression that is multiple of 100 (872.875 = 736,000). So the x2.x5 terms produce 100 + 10 + 1 = 111 zeroes.

This calculation yields 222 zeroes, but Wolfram-Alpha shows 249 zeroes, so my result is wrong... I'm missing something and I have no clue what... :-(

Back to kindergarten, fbs7!

You shouldn't worry about the last digits, just write ##1000!## as a product of primes.

- #50

DeathByKugelBlitz

Gold Member

- 28

- 16

def primeFactors(n):

while n % 2 == 0:

print 2,

n = n / 2

for i in range(3,int(math.sqrt(n))+1,2):

while n % i== 0:

print i,

n = n / i

if n > 2:

print n

(primeFactors(math.factorial(1000)))

2 2 13 107 36791

Share: