Дано натуральное число n1. Выведите его наименьший делитель, отличный от 1. Решение оформите в виде функции MinDivisor. Туплю. Что не так с кодом? #include #include using namespace std; int MinDivisor (int n) { cin боль...

Дано натуральное число n1. Выведите его наименьший делитель, отличный от 1. Решение оформите в виде функции MinDivisor. Туплю. Что не так с кодом? #include #include using namespace std; int MinDivisor (int n) { cin >> n; int i = 2, min_den = 1; int sqrt_n = sqrt((double)n); while (i <= sqrt_n) { if (n % i == 0) { min_den = i; break; } i++; } if (min_den == 1) cout << n; else cout << min_den; return 0; }
Гость
Ответ(ы) на вопрос:
Гость
#include using namespace std; int MinDivisor (int n) { int i = 2, min_den = 1; while (i <= n/2) { if (n % i == 0) { min_den = i; break; } i++; } return min_den; } int main() { int n, min; cin >> n; min = MinDivisor(n); if (min == 1) cout << n; else cout << min; return 0; } Пример: 169 13
Не нашли ответ?
Ответить на вопрос
Похожие вопросы