//--------------------------------------------------------1
for ( int i=n1; !(n1 % i ==0 && n2 % i ==0); i--);
//--------------------------------------------------------2
for ( int n=a; n%a!=0 || n%b!=0; n++);
1. Найти «в лоб» НОД и похѣрить его.
2. Найти «в лоб» НОК и отправить его туда же.
Повторяю, обе функции крайне неэффективны, а их результат идёт в никуда. Как только управление пересечёт точку с запятой, переменная исчезнет.