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,24 @@
|
|||
multiple: procedure options (main); /* 29 April 2014 */
|
||||
|
||||
declare n fixed binary (31);
|
||||
|
||||
find_mdr: procedure;
|
||||
declare (mdr, mp, p) fixed binary (31);
|
||||
|
||||
mdr = n;
|
||||
do mp = 1 by 1 until (p <= 9);
|
||||
p = 1;
|
||||
do until (mdr = 0); /* Form product of the digits in mdr. */
|
||||
p = mod(mdr, 10) * p;
|
||||
mdr= mdr/10;
|
||||
end;
|
||||
mdr = p;
|
||||
end;
|
||||
put skip data (n, mdr, mp);
|
||||
end find_mdr;
|
||||
|
||||
do n = 123321, 7739, 893, 899998;
|
||||
call find_mdr;
|
||||
end;
|
||||
|
||||
end multiple;
|
||||
|
|
@ -0,0 +1,56 @@
|
|||
mdrt: Proc Options(main);
|
||||
Dcl (x,p,r) Bin Fixed(31);
|
||||
Put Edit('number persistence multiplicative digital root')(Skip,a);
|
||||
Put Edit('------- ----------- ---------------------------')(Skip,a);
|
||||
Call task1(123321);
|
||||
Call task1( 7739);
|
||||
Call task1( 893);
|
||||
Call task1(899998);
|
||||
|
||||
task1: Procedure(x);
|
||||
Dcl x Bin Fixed(31);
|
||||
Call mdr(x,p,r);
|
||||
Put Edit(x,p,r)(Skip,f(8),f(8),f(22));
|
||||
End;
|
||||
|
||||
Dcl zn(0:9) Bin Fixed(31);
|
||||
Dcl z(0:9,5) Bin Fixed(31);
|
||||
zn=0;
|
||||
zn(0)=1;
|
||||
z(0,1)=0;
|
||||
Do x=1 To 11111;
|
||||
Call mdr(x,p,r);
|
||||
If zn(r)<5 Then Do;
|
||||
zn(r)+=1;
|
||||
z(r,zn(r))=x;
|
||||
End;
|
||||
End;
|
||||
Put Edit(' ')(Skip,a);
|
||||
Put Edit('MDR first 5 numbers that have a matching MDR')(Skip,a);
|
||||
Put Edit('--- ----------------------------------------')(Skip,a);
|
||||
|
||||
Do r=0 To 9;
|
||||
Put Edit(r,' ')(Skip,f(3),a);
|
||||
Do i=1 To 5;
|
||||
Put Edit(z(r,i))(f(6));
|
||||
End;
|
||||
End;
|
||||
|
||||
mdr: Procedure(y,p,r);
|
||||
Dcl (y,p,r) Bin Fixed(31);
|
||||
Dcl (k,yy) Bin Fixed(31);
|
||||
Dcl pic Pic'(10)9';
|
||||
Dcl d Pic'9';
|
||||
pic=abs(y);
|
||||
Do p=1 By 1 Until(pic<10);
|
||||
Do k=1 To 10 Until(substr(pic,k,1)>'0');
|
||||
End;
|
||||
r=1;
|
||||
Do k=k To 10;
|
||||
d=substr(pic,k,1);
|
||||
r=r*d;
|
||||
End;
|
||||
pic=r;
|
||||
End;
|
||||
End;
|
||||
End;
|
||||
Loading…
Add table
Add a link
Reference in a new issue