int gcd(int a, int b) { return b ? gcd(b, a % b) : a; }
Если же тебе нужен более быстро работающий аналог твоего кода, то меняешь: del = 2;
while (n % del != 0){
del += 1;
}
На: for (del = 2; del * del <= n && n % del; ++del);
if (n % del) { del = n; }
Искать делители надо не до n, а до √n
#include <iostream>
using namespace std;
int main(){
int n, del;
cin >> n;
del = 2;
while (n % del != 0){
del += 1;
}
cout << del;
}
На одном из тестов затупила и выполняла слишком долго. Почему? И можете предложить "починенную" версию кода?