Auch nicht schlecht. Enthält allerdings auch den Fehler den Apokalypse bei mir angemerkt hat. Dein Programm gibt für zwei gleiche, vollkommene Zahlen auch true aus. Zwei befreundete Zahlen sind aber nach Definition verschieden. Also bekommst du auch noch 5 Zeichen dazu, womit wir gleich auf wären.
Da fällt mir auf (dank deinem code ;-) ) das sich mein code noch um 2 Zeichen von --l>0 auf --l verkürzen lässt.
C++:
int a,l;for(a=l=i+j;--l;a+=i%l?0:l)a-=j%l?0:2*l;return!a&&i^j;
Aber im Grunde genommen sind unsere Ansätze doch recht ähnlich, außer das du eine Variable mehr verwendest. -- Gruß firefoxxi