Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Как найти минимальный натуральный делитель числа x?

Александр Александров Ученик (187), закрыт 1 год назад
Подскажите, пожалуйста, как найти минимальный натуральный делитель числа x отличный от 1, т. е y> 1?
Например, если на вход будет число x=10, то y=2
Нужно чтобы в итоге выводилось одно число, но я не знаю как это сделать. Мой говнокод:

using System;

namespace TaskB
{
class Program
{
static void Main(string[] args)
{
int result = 0;
string number = Console.ReadLine();
bool flag = int.TryParse(number, out int num);
if (flag == false)
{
Console.WriteLine("Incorrect input");
}

for (int i = 2; i <= num; i++)
{
result = num % i;

if (result > 0)
{
break;
Console.WriteLine(result);
}
}
Console.WriteLine(result);
}
}
}
У меня выводится просто число больше 1, а мне нужен конкретно наименьший делитель числа
Лучший ответ
Андрей Высший разум (461684) 3 года назад
int i;
for (i = 2; i * i <= num; i++) {
if (num % i == 0) {
Console.WriteLine(i);
break;
}
}
if (i * i > num) {
Console.WriteLine(num);
}
Остальные ответы
Полосатый жираф Алик Искусственный Интеллект (313068) 3 года назад
НаиМЕНЬШИЙ - не наиБОЛЬШИЙ!
Иди по натуральным числам от 2 до корня из проверяемого числа. И первое, которые подходит, будет ответом. Разве нет?
Александр АлександровУченик (187) 3 года назад
ну вот а как мне вывести именно этот ответ?
Полосатый жираф Алик Искусственный Интеллект (313068) Александр Александров, Как-как... Как поделилось нацело, так выводишь делитель и заканчиваешь программу. В чём сложность? Если ничего не нашлось, то пишешь: "Это простое число!"
Похожие вопросы