All about flooble | fun stuff | Get a free chatterbox | Free JavaScript | Avatars
 perplexus dot info

 Duodecimal Pandigital Divisibility Device (Posted on 2016-09-13)
N is an 11-digit duodecimal positive integer that uses every digit from 1 to B inclusively exactly once, and:
N is divisible by 7.

Devise an algorithm to generate all possible values of N.

 No Solution Yet Submitted by K Sengupta No Rating

Comments: ( Back to comment list | You must be logged in to post comments.)
 Choice of two algorithms | Comment 1 of 2
The first 11-digit duodecimal positive integer is 10000000000 and the last is bbbbbbbbbbb. The former, in decimal is 12^10, and the latter is 12^13 - 1. Those numbers are  61,917,364,224 and  743,008,370,687 respectively.

The first of these numbers is congruent to 2 mod 7, so we can start testing numbers for duodecimal pandigitality at the duodecimal equivalent of 61,917,364,224 + 5 = 61,917,364,229, and continue incrementing by 7. This involves testing almost 100 billion numbers to see if their duodecimal representation is pandigital and reporting any found, using duodecimal representation.

An alternative is to take the string "123456789ab" and form all  479,001,600 permutations to see which ones are divisible by 7. That's only about 1/200 as many numbers to test.

DefDbl A-Z
Dim crlf\$

Form1.Visible = True

Text1.Text = ""
crlf = Chr\$(13) + Chr\$(10)

n\$ = "123456789ab": h\$ = n
Do
v = fromBase(n, 12)
permute n
DoEvents
q = Int(v / 7)
r = v - 7 * q
If r = 0 Then
Text1.Text = Text1.Text & n & "    " & v & "    " & v - prev & crlf
prev = v
ct = ct + 1
If ct > 200 Then Exit Sub
End If
Loop Until n = h

Text1.Text = Text1.Text & crlf  & " done"

End Sub

Function fromBase(n\$, b)
v = 0
For i = 1 To Len(n\$)
c\$ = LCase\$(Mid(n\$, i, 1))
If c\$ > " " Then
v = v * b + InStr("0123456789abcdefghijklmnopqrstuvwxyz", c\$) - 1
End If
Next
fromBase = v
End Function

The above implementation cuts off after 201 values are found.  These values are:
`                                decimalduodecimal       decimal     difference from                equivalent   previous value                12345679ba8    73686782554    1234567a8b9    73686783863    13091234567ba98    73686785865    2002123456879ba    73686799571    1370612345687b9a    73686799725    1541234568b97a    73686806193    6468123456987ab    73686820592    14399123456987ba    73686821747    115512345698ba7    73686822286    5391234569a87b    73686825212    29261234569b78a    73686825751    5391234569b7a8    73686826906    1155123456a7b98    73686841305    14399123456ab897    73686847773    6468123456b789a    73686847927    154123456b798a    73686861633    13706123456b978a    73686863635    2002123456b987a    73686864944    130912345768ba9    73687008934    143990123457698ba    73687010243    13091234576a9b8    73687012091    184812345789a6b    73687051438    393471234578ab69    73687053594    21561234578ab96    73687053825    231123457968ab    73687055442    161712345796ab8    73687067531    120891234579a68b    73687071150    36191234579b86a    73687075616    4466123457a698b    73687088013    12397123457a89b6    73687091555    3542123457ab698    73687096329    4774123457b68a9    73687108726    12397123457b6a89    73687108880    154123457ba869    73687115348    64681234586a7b9    73687260647    1452991234586ab79    73687260955    308123458769ab    73687262803    184812345876ba9    73687275046    1224312345879ab6    73687280051    50051234587b96a    73687282977    29261234587b9a6    73687283362    38512345896b7a    73687316395    3303312345897a6b    73687317550    11551234589b67a    73687323402    5852123458a76b9    73687338263    14861123458a9b67    73687341882    3619123458b679a    73687345578    3696123458b6a97    73687357821    12243123458b7a69    73687359438    1617123458ba796    73687364289    485112345968a7b    73687506046    14175712345968ab7    73687506431    3851234596ba78    73687511359    492812345976b8a    73687523756    1239712345978ba6    73687527298    35421234597ab68    73687530378    3080123459876ab    73687544623    1424512345987ab6    73687546163    15401234598a6b7    73687550783    4620123459ab678    73687589514    38731123459ab687    73687593980    4466123459ab867    73687594134    154123459b786a    73687607840    13706123459b86a7    73687609534    1694123459ba768    73687612999    346512345a6798b    73687753293    14029412345a6987b    73687756604    331112345a6b789    73687757143    53912345a6b987    73687760300    315712345a76b98    73687772697    1239712345a7896b    73687775469    277212345a7968b    73687776162    69312345a796b8    73687777163    100112345a79b86    73687777856    69312345a7b869    73687780628    277212345a867b9    73687792871    1224312345a86b79    73687793179    30812345a8b697    73687801341    816212345a9867b    73687815894    1455312345a986b7    73687816895    100112345a9b786    73687822208    531312345ab6789    73687822362    15412345ab8976    73687858783    3642112345ab9687    73687860092    130912345ab9867    73687860246    15412345b679a8    73688002234    14198812345b6879a    73688002388    15412345b6897a    73688003697    130912345b78a69    73688024718    2102112345b798a6    73688026258    154012345b7a689    73688026566    30812345b7a698    73688027721    115512345b869a7    73688041966    1424512345b89a67    73688046894    492812345b89a76    73688047279    38512345b9687a    73688062448    1516912345b9876a    73688065759    331112345b9a678    73688066298    53912345b9a876    73688069455    315712345ba6798    73688083161    1370612345ba6978    73688083315    15412345ba7896    73688085009    169412345ba8967    73688086626    161712345ba9786    73688088320    1694123465789ab    73688088474    15412346579b8a    73689519596    14311221234657b89a    73689521444    18481234657b98a    73689522753    130912346587ba9    73689536998    142451234658a79b    73689540463    34651234658ab97    73689542157    169412346597a8b    73689557326    151691234659a7b8    73689562331    5005123465a789b    73689564487    2156123465a78b9    73689578039    13552123465a89b7    73689579887    1848123465a978b    73689580195    308123465b79a8    73689598906    18711123465b879a    73689599060    154123465b897a    73689600369    130912346759ba8    73689975898    3755291234675a8b9    73689977207    13091234675ba98    73689979209    2002123467895ba    73690037267    580581234678ab59    73690039577    2310123467958ab    73690041425    184812346795b8a    73690051820    1039512346798a5b    73690056286    44661234679a58b    73690057133    8471234679b8a5    73690061830    4697123467a59b8    73690072379    10549123467a85b9    73690076999    4620123467a9b85    73690079540    2541123467b8a95    73690098405    18865123467ba598    73690101177    2772123467ba985    73690101716    53912346857ab9    73690221143    119427123468597ab    73690221297    1541234685a97b    73690225917    46201234685ba79    73690227919    2002123468759ba    73690259027    3110812346875b9a    73690259181    1541234687b5a9    73690268806    962512346895a7b    73690300222    3141612346895ab7    73690300607    385123468975ba    73690303379    27721234689b57a    73690309385    6006123468a57b9    73690320935    11550123468a5b79    73690321243    308123468a79b5    73690324631    3388123468a9b57    73690327865    3234123468ab795    73690331253    3388123468b579a    73690331561    308123468b7a59    73690345421    13860123468b95a7    73690348270    2849123468b9a75    73690348963    693123469578ba    73690469699    1207361234695a78b    73690471855    21561234695ba87    73690476860    500512346975ba8    73690508122    3126212346978ab5    73690513127    50051234697a5b8    73690515899    27721234697ab58    73690516361    4621234698ab75    73690537459    210981234698b75a    73690538383    9241234698b7a5    73690538614    231123469a785b    73690572956    34342123469ab578    73690575497    2541123469ab857    73690580117    4620123469b587a    73690590512    10395123469b78a5    73690594054    3542123469ba587    73690598828    477412346a5879b    73690718948    12012012346a587b9    73690720103    115512346a58b79    73690720411    30812346a598b7    73690721951    154012346a7958b    73690762145    4019412346a7b598    73690766457    431212346a7b985    73690766996    53912346a859b7    73690777391    1039512346a8759b    73690777699    30812346a8795b    73690780317    261812346a95b78    73690798027    1771012346a95b87    73690798412    38512346a978b5    73690801415    300312346a9857b    73690801877    46212346a98b75    73690803571    169412346ab5789    73690808345    477412346ab5897    73690839453    3110812346ab7589    73690839607    15412346ab8759    73690844227    462012346ab9857    73690846229    200212346b578a9    73690967350    12112112346b57a89    73690967504    15412346b589a7    73690969198    169412346b59a78    73690970815    161712346b5a897    73690972509    169412346b7589a    73690972663    15412346b78a59    73691010701    3803812346b7985a    73691011856    115512346b7a589    73691012549    693`

The differences are irregular, but all positive, as a and b are higher in the collating sequence than normal decimal digits; thus the numbers are found in ascending sequence.

 Posted by Charlie on 2016-09-13 09:51:04

 Search: Search body:
Forums (0)