46 lines
909 B
Text
46 lines
909 B
Text
$ENTRY Go {
|
|
= <Each ShowFirstSuperD <Iota 2 7>>;
|
|
};
|
|
|
|
ShowFirstSuperD {
|
|
s.D = <Prout 'First 10 super-' <Symb s.D> ' numbers:'>
|
|
<Prout <FindN 10 IsSuperD s.D>>
|
|
<Prout>;
|
|
};
|
|
|
|
Iota {
|
|
s.E s.E = s.E;
|
|
s.I s.E = s.I <Iota <Add 1 s.I> s.E>;
|
|
};
|
|
|
|
Each {
|
|
s.F = ;
|
|
s.F s.I e.X = <Mu s.F s.I> <Each s.F e.X>;
|
|
};
|
|
|
|
FindN {
|
|
s.N e.F = <FindN (1) s.N e.F>;
|
|
(e.X) 0 e.F = ;
|
|
(e.X) s.N e.F, <Mu e.F e.X>: {
|
|
True = e.X <FindN (<Add (e.X) 1>) <Sub s.N 1> e.F>;
|
|
False = <FindN (<Add (e.X) 1>) s.N e.F>;
|
|
};
|
|
};
|
|
|
|
IsSuperD {
|
|
s.D s.N, <Mul s.D <Pow s.N s.D>>: e.ND,
|
|
<Repeat s.D <Symb s.D>>: e.RD,
|
|
<Symb e.ND>: e.X e.RD e.Y = True;
|
|
s.D s.N = False;
|
|
}
|
|
|
|
Pow {
|
|
s.D s.P = <Pow (s.D) s.P>;
|
|
(e.N) 0 = 1;
|
|
(e.N) s.P = <Mul (e.N) <Pow (e.N) <Sub s.P 1>>>;
|
|
}
|
|
|
|
Repeat {
|
|
0 s.C = ;
|
|
s.N s.C = s.C <Repeat <Sub s.N 1> s.C>;
|
|
};
|