За решението на а) като б) се сетих, но вече бях написал итеративното решение, което ще е по-бързо при всички положения (знам, че не гоним ефективност, но все пак

).
Иначе за at_gen - нямах написан member, а at_gen беше първото име, което ми хрумна - но са си еднакви...