Update all new Tasks
This commit is contained in:
parent
00a190b0a6
commit
91df62d461
5697 changed files with 93386 additions and 804 deletions
|
|
@ -0,0 +1,76 @@
|
|||
# Multiplicative Digital Roots
|
||||
|
||||
BEGIN {
|
||||
|
||||
printMdrAndMp( 123321 );
|
||||
printMdrAndMp( 7739 );
|
||||
printMdrAndMp( 893 );
|
||||
printMdrAndMp( 899998 );
|
||||
|
||||
tabulateMdr( 5 );
|
||||
|
||||
} # BEGIN
|
||||
|
||||
function printMdrAndMp( n )
|
||||
{
|
||||
calculateMdrAndMp( n );
|
||||
printf( "%6d: MDR: %d, MP: %2d\n", n, MDR, MP );
|
||||
} # printMdrAndMp
|
||||
|
||||
function calculateMdrAndMp( n, mdrStr, digit )
|
||||
{
|
||||
|
||||
MP = 0; # global Multiplicative Persistence
|
||||
MDR = ( n < 0 ? -n : n ); # global Multiplicative Digital Root
|
||||
|
||||
while( MDR > 9 )
|
||||
{
|
||||
MP ++;
|
||||
mdrStr = "" MDR;
|
||||
MDR = 1;
|
||||
for( digit = 1; digit <= length( mdrStr ); digit ++ )
|
||||
{
|
||||
MDR *= ( substr( mdrStr, digit, 1 ) * 1 );
|
||||
} # for digit
|
||||
} # while MDR > 9
|
||||
|
||||
} # calculateMdrAndMp
|
||||
|
||||
function tabulateMdr( n, rqdValues, valueCount, value, pos )
|
||||
{
|
||||
|
||||
# generate a table of the first n numbers with each possible MDR
|
||||
|
||||
rqdValues = n * 10;
|
||||
valueCount = 0;
|
||||
|
||||
for( value = 0; valueCount < rqdValues; value ++ )
|
||||
{
|
||||
calculateMdrAndMp( value );
|
||||
if( mdrCount[ MDR ] < n )
|
||||
{
|
||||
# still need another value with this MDR
|
||||
valueCount ++;
|
||||
mdrCount[ MDR ] ++;
|
||||
mdrValues[ MDR ":" mdrCount[ MDR ] ] = value;
|
||||
} # if mdrCount[ MDR ] < n
|
||||
} # for value
|
||||
|
||||
# print the table
|
||||
|
||||
printf( "MDR: [n0..n%d]\n", n - 1 );
|
||||
printf( "=== ========\n" );
|
||||
|
||||
for( pos = 0; pos < 10; pos ++ )
|
||||
{
|
||||
printf( "%3d:", pos );
|
||||
separator = " [";
|
||||
for( value = 1; value <= n; value ++ )
|
||||
{
|
||||
printf( "%s%d", separator, mdrValues[ pos ":" value ] );
|
||||
separator = ", "
|
||||
} # for value
|
||||
printf( "]\n" );
|
||||
} # for pos
|
||||
|
||||
} # tabulateMdr
|
||||
Loading…
Add table
Add a link
Reference in a new issue