Thread Closed

Non duplicate digits and arrangement puzzle

 
Share Thread Thread Tools
Jun10-09, 02:04 PM   #1
 

Non duplicate digits and arrangement puzzle


B is a positive 8-digit base ten integer of the form PQRSTUVW that contains precisely 8 distinct digits from 1 to 9, and satisfies all of the following conditions:

(i) PQ is divisible by 2.
(ii) PQR is divisible by 3.
(iii) PQRS is divisible by 4.
(iv) PQRST is divisible by 5.
(v) PQRSTU is divisible by 6.
(vi) PQRSTUV is divisible by 7.
(vii) PQRSTUVW is divisible by 8.

Determine all possible value(s) that B can assume.
PhysOrg.com
PhysOrg
science news on PhysOrg.com

>> Bird's playlist could signal mental strengths and weaknesses
>> Minus environment, patterns still emerge: Computational study tracks E. coli cells' regulatory mechanisms
>> Bacterium uses natural 'thermometer' to trigger diarrheal disease, scientists find
Jun11-09, 11:00 AM   #2
 
Quasi-brute force...

Spoiler
38165472


DaveE
Aug8-09, 10:51 AM   #3
 
Blog Entries: 2
Spoiler

Using divisibility rules and after 6 pages of handwriting:
PQRSTUVW = 38165472
Aug8-09, 11:45 AM   #4
 

Non duplicate digits and arrangement puzzle


It was a fun little programming exercise to do it in an efficient way:
Spoiler
12965408
30925864
36925840
38165472
72965480
78320416
78920456
80165472
92765408

my Python:
Code:
def finddigits2():
    def step(prefix,divisible):
        nextprefix = (prefix*10-1)/divisible*divisible
        while nextprefix < (prefix+1)*10-divisible:
            nextprefix += divisible
            if divisible < 8:
                step(nextprefix,divisible+1)
            else:
                if len(set(str(nextprefix))) == 8:
                    print nextprefix
    for f in range(1,10):
        step(f,2)
Aug8-09, 03:09 PM   #5
 
Blog Entries: 2
Hey mXSCNT,

your program looks compact. Can you explain it a little bit especially how you dealt with the digits being distinct?
Aug8-09, 03:54 PM   #6
 
I dealt with that in this line:
if len(set(str(nextprefix))) == 8:

str(nextprefix) writes the prefix as a string, such as 12965408 becomes "12965408". set(str(nextprefix)) turns the individual characters in the string into a set (ignoring duplicates) so in this case that would be set(['1','2','9','6','5','4','0','8']). len(set(str(nextprefix))) == 8 checks that the "length" of the set (the number of elements in the set) is 8.
Thread Closed
Thread Tools


Similar Threads for: Non duplicate digits and arrangement puzzle
Thread Forum Replies
Decimal integers with nonzero digits and sum of powers puzzle Brain Teasers 7
Ten Digits And Operator Puzzle Brain Teasers 8
Arrangement problem Calculus & Beyond Homework 3
Helmholtz arrangement Introductory Physics Homework 2
Arrangement of voltmeter Introductory Physics Homework 2