All pastes #989462 Raw Edit

Mine

public text v1 · immutable
#989462 ·published 2008-04-19 11:26 UTC
rendered paste body
fun digits n =
       let
               val p = n div 10
       in
               if p=0 then 1
                       else 1 + digits p
       end;


fun sum n =
        let
                fun dig n =
                        let
                        val x = n mod 10
                        val y = n div 10
                in
                if x=0 andalso y=0 then 0
                                                                   else x+(dig y)
                        end;
        in
                n + dig n
        end;


fun isself i =
        let
                fun self_aux i x =
                        if x<i andalso i=(sum x) then 0
                        else if x<i andalso (i<>sum x) then self_aux i (x+1)
                        else 1
                val tmp = i - 9*(digits i)
        in
                if tmp<=0 then self_aux i 0
                                  else self_aux i tmp
        end;

fun self i j =
        if i<=j then (self (i+1) j) + (isself i)
                        else 0;

val args = CommandLine.arguments ();
val n1 = valOf (Int.fromString (List.nth (args, 0)));
val n2 = valOf (Int.fromString (List.nth (args, 1)));