Считаете цикл от 2 до n/2. На каждом шаге делите, пока остаток равен нулю и выводите на экран. Простые числа так и пойдут.
Александр: Остаток деления на 1 любого числа - нуль, так что ваша программа не сработает :) Плюс к примеру у числа 8 - простые множители - 2*2*2, а у вас 2*4.
Зло: На самом деле, если брать и делить тоже самое 24 (2*2*2*3) (к примеру) на 2, пока остаток нуль, то дальше на числа кратные 2-м мы уже не поделим (поделили на первой итерации) , то есть 4, 8 и прочие просто пройдут мимо.
Сначала посчитаем сколько чисел в интервале от 1 до 2014 делится на 5 Таких чисел - каждое пятое, т.е. int(2014 / 5) = 402 Теперь посчитаем сколько чисел делится на 25 int (2014/25) = 80 Далее по всем степеням пятерки int (2014/125) = 16 int (2014/625) = 3
Таким образом в разложении факториала 2014 на простые множители пятерка будет присутствовать 402+80+16+3 = 501 раз
Аналогично можно посчитать сколько в разложении будет двоек Если есть желание - сделайте сами, но вполне очевидно, что их будет больше чем пятерок...
Каждый ноль в конце произведения - это пара множителей 5 и 2...
Александр: Остаток деления на 1 любого числа - нуль, так что ваша программа не сработает :)
Плюс к примеру у числа 8 - простые множители - 2*2*2, а у вас 2*4.
Зло: На самом деле, если брать и делить тоже самое 24 (2*2*2*3) (к примеру) на 2, пока остаток нуль, то дальше на числа кратные 2-м мы уже не поделим (поделили на первой итерации) , то есть 4, 8 и прочие просто пройдут мимо.