Примечание 1 не учитываем, тк это не простое число.

Алгоритм поиска простых чисел

Здесь принцип тот же , что и про поиске делителей, отличие в том , что у нас для простых чисел кроме пары 1 и само число не будет больше делителей(число делится только на 1 и на само себя). Т.е сразу можно настроить проверку на делимость от 2 и до корня числа, если там делителей не будет найдено, то число простое.

Лучше всего этот алгоритм задавать подпрограммой.

 

 

Задача № 2562

(Демовариант 2021 г.). Напишите программу, которая ищет среди целых чисел, принадлежащих числовому отрезку [174457; 174505], числа, имеющие ровно два различных натуральных делителя, не считая единицы и самого числа. Для каждого найденного числа запишите эти два делителя в таблицу на экране с новой строки в порядке возрастания произведения этих двух делителей. Делители в строке таблицы также должны следовать в порядке возрастания.
Спрятать ответ 3 58153 7 24923 59 2957 13 13421 149 1171 5 34897 211 827 2 87251 1. Нам нужно найти числа с РОВНО ДВУМЯ делителями. Вспомним факт о том , что если один из делителей это его корень, то общее кол-во делителей числа нечетное. Т.е нам нужно исключить это число с делителями равными корню, -и продолжить перебирать со следующего числа, не делая более никаких дальнейших действий в теле цикла(это оператор continue, мы не выходим из цикла, тк нам нужно перебрать остальные числа из промежутка). 2. Далее т.к нам надо найти ровно два делителя(причем нам дано указание, что пара 1 и число- исключена!, те перебор начинаем не с 1, а с 2), то,  как только мы видим , что делителей у числа больше двух, выходим из перебора для делителей(оператор break выход из цикла совсем- тк дальше нам нет смысла перебирать и искать делители) и берем следующее число( т.е возврат в верхний старший цикл )для проверки на делимость. 3. Вывести в порядке возрастания произведения этих делителей- тк произведение этих делителей и даст нам само число.,то  будем перебирать числа по порядку и выводить ответ.

 Здесь произведение(само число не надо было выводить-я вывела для большей наглядности.


(№ 2563) Напишите программу, которая ищет среди целых чисел, принадлежащих числовому отрезку [3532000; 3532160], простые числа. Выведите все найденные простые числа в порядке возрастания, слева от каждого числа выведите его номер по порядку.

Будем пользоваться алгоритмом поиска простых чисел(см.выше)

(№ 2565) Напишите программу, которая ищет среди целых чисел, принадлежащих числовому отрезку [154026; 154043], числа, имеющие ровно 4 различных делителя. В ответе для каждого найденного числа запишите два его наибольших делителя в порядке возрастания.

1. Нам нужно найти числа с РОВНО ЧЕТЫРЕ делителями. Вспомним факт о том , что если один из делителей это его корень, то общее кол-во делителей числа нечетное. Т.е нам нужно исключить это число с делителями равными корню, -и продолжить перебирать со следующего числа, не делая более никаких дальнейших действий в теле цикла(это оператор continue, мы не выходим из цикла, тк нам нужно перебрать остальные числа из промежутка).

2. Далее т.к нам надо найти ровно 4 делителя(понимаем, что пара 1 и число тоже делители те перебор начинаем с 1), то, как только мы видим , что делителей у числа больше 4, выходим из перебора для делителей(оператор break выход из цикла совсем- тк дальше нам нет смысла перебирать и искать делители) и берем следующее число( т.е возврат в верхний старший цикл )для проверки на делимость.

3. Максимальный делитель всегда в первой паре( у нас это 1 и само число)

 

(№ 2575) Напишите программу, которая ищет среди целых чисел, принадлежащих числовому отрезку [244143; 1367821], числа, имеющие ровно 5 различных делителей. В ответе для каждого найденного числа запишите два его наибольших делителя, не равных самому числу, в порядке возрастания.

1. Нам нужно найти числа с РОВНО пять делителей. Вспомним факт о том , что если один из делителей это его корень, то общее кол-во делителей числа нечетное. Т.е нам нужно исключить число с делителями не равными корню, -и продолжить перебирать со следующего числа, не делая более никаких дальнейших действий в теле цикла(это оператор continue, мы не выходим из цикла, тк нам нужно перебрать остальные числа из промежутка).

2. Далее т.к нам надо найти ровно 5 делителя(понимаем, что пара 1 и число тоже делители те перебор начинаем с 1), то, как только мы видим , что делителей у числа больше 5, выходим из перебора для делителей(оператор break выход из цикла совсем- тк дальше нам нет смысла перебирать и искать делители) и берем следующее число( т.е возврат в верхний старший цикл )для проверки на делимость.

3. Тк максимальный делитель в паре это 1 и само число, причем нам дано указание его не брать, значит берем делители перед этим максимальным=числу делителем

  

 


 

 

(№ 2578) (Б.С. Михлин) Напишите программу, которая ищет среди целых чисел, принадлежащих числовому отрезку [394441; 394505], числа, имеющие максимальное количество различных делителей. Если таких чисел несколько, то найдите минимальное из них. В ответе запишите два числа: количество делителей найденного числа и само число.

Способ 1 при помощи словаря


 

Способ 2

При помощи неравенств.


 

(№ 2588) (Д.Ф. Муфаззалов) Совершенным называется число, натуральное число, равное сумме всех своих собственных делителей (то есть всех положительных делителей, отличных от самого́ числа) (например, число 6=1+2+3). ) Выведите каждое совершенное число из диапазона [2; 10000] в количество его собственных делителей в порядке возрастания. Вывод каждого совершенного числа начинайте с новой строки. Числа в строке разделяйте пробелом.

 (№ 2600) Среди целых чисел, принадлежащих числовому отрезку [268312;336492], найдите числа, которые представляют собой произведение двух различных простых делителей. Запишите в ответе количество таких чисел и минимальное их них.

 


 

(№ 2614) Назовём нетривиальным делителем натурального числа его делитель, не равный единице и самому числу. Найдите все натуральные числа, принадлежащие отрезку [1523467; 4157812] и имеющие ровно три нетривиальных делителя. Для каждого найденного числа запишите в ответе два числа: само число и его наибольший нетривиальный делитель. Найденные числа расположите в порядке возрастания.

(№ 3159) Рассмотрим произвольное натуральное число, представим его всеми возможными способами в виде произведения двух натуральных чисел и найдём для каждого такого произведения разность сомножителей. Например, для числа 18 получим: 18 = 18*1 = 9*2 = 6*3, множество разностей содержит числа 17, 7 и 3. Подходящей будем называть пару сомножителей, разность между которыми не превышает 90. Найдите все натуральные числа, принадлежащие отрезку [500000; 1000000], у которых есть не менее трёх подходящих пар сомножителей. В ответе перечислите найденные числа в порядке возрастания, справа от каждого запишите наибольший из всех сомножителей, образующих подходящие пары.

(№ 3441) (Е. Джобс) Для интервала [33333;55555] найдите числа, которые кратны сумме своих простых делителей. В качестве ответа приведите числа, для которых сумма простых делителей больше 250, – сначала найденное число, затем сумму его простых делителей. Примечание: само число в качестве делителя не учитывается.

Примечание 1 не учитываем, тк это не простое число.

 

Здесь речь о максимальной разности делителей, она достигается в самой первой паре , или второй,тк 1 и само число по условию задачи не подходит поэтому после первой пары сразу перестаем дальше искать делители.

 

(№ 3657) (С.О. Куров) Среди целых чисел, принадлежащих числовому отрезку [1000000; 1300000], найдите числа, у которых все цифры меньше тройки, а сумма цифр кратна десяти. Среди всех таких чисел необходимо отобрать каждое десятое (10-е, 20-е, 30-е и т.д.). Расположите найденные числа в порядке возрастания, справа от каждого числа укажите количество его собственных делителей (не равных 1 и самому числу).


Дата добавления: 2021-05-18; просмотров: 2875; Мы поможем в написании вашей работы!

Поделиться с друзьями:




Мы поможем в написании ваших работ!