0 / 0 / 0
Регистрация: 03.09.2015
Сообщений: 10
|
||||||
1 | ||||||
Почему цикл работает пока i*i< введенного числа?03.09.2015, 21:33. Показов 1068. Ответов 11
Метки нет (Все метки)
Проверка на простое или составное число.
Почему именно возводится в квадрат?
0
|
03.09.2015, 21:33 | |
Ответы с готовыми решениями:
11
Вычислить сумму, пока значение суммы остается меньше введенного числа Вычислить сумму, пока значение суммы остается меньше введенного числа А Организовать ввод чисел до тех пор, пока их сумма не превысит введенного числа m Рекурсивная функция: вычисление суммы чисел Фибоначчи, пока они меньше введенного числа |
Музыка нас Связала
232 / 232 / 52
Регистрация: 26.03.2008
Сообщений: 616
|
|
03.09.2015, 22:13 | 2 |
Потому, что i * (i - 1), i * (i - 2), ..., i * (i - (i - 1)) не могут быть простыми, ибо кроме 1, у них как минимум есть еще один делитель, сам i.
1
|
0 / 0 / 0
Регистрация: 03.09.2015
Сообщений: 10
|
|
03.09.2015, 22:43 [ТС] | 3 |
Вы меня простите я на 1 курсе, но откуда вообще взялся i*(i-1)? Как это относится к делителям 1 и самому i?
Добавлено через 4 минуты В цикле есть проверка на делитель, но почему он робит до i*i? Добавлено через 20 секунд Пример из Полякова Добавлено через 2 минуты i*i тут сам делитель находится вот оно что
0
|
5871 / 4748 / 2940
Регистрация: 20.04.2015
Сообщений: 8,361
|
|
03.09.2015, 22:49 | 4 |
Если рассмотреть следующую таблицу, то можно увидеть, что делить на числа, квадрат которых большие N смысла нет, так как результатом деления будут числа, на которые число N уже делилось.
1
|
0 / 0 / 0
Регистрация: 03.09.2015
Сообщений: 10
|
|
03.09.2015, 22:58 [ТС] | 5 |
Даценд, я бы тебе подарил пирожок, теперь стало ЯСНО, но как заранее мне как программисту мне узнать что в цикле нужен i*i? К примеру на сессии?
Добавлено через 4 минуты Даценд, Я понял, мне нужно додуматься своей бошкой, что дальше если мы делим то рез-ты будут меньше и соответственно мы используем цикл for. Всем спасибо)
0
|
Диссидент
27706 / 17322 / 3812
Регистрация: 24.12.2010
Сообщений: 38,979
|
||||||
03.09.2015, 22:58 | 6 | |||||
Сообщение было отмечено MrRovax как решение
Решение
Пусть N делится на k и k*k > N. Тогда N делится на i = N/k, но i*i < N, то есть этот случай мы уже в цикле
Простите, ничего не понял. А вы?
1
|
5871 / 4748 / 2940
Регистрация: 20.04.2015
Сообщений: 8,361
|
|
03.09.2015, 23:11 | 7 |
Не обязательно. Думаю, будет предмет типа Теории алгоритмов, где в том числе расскажут и об алгоритмах поиска простых чисел.
0
|
0 / 0 / 0
Регистрация: 03.09.2015
Сообщений: 10
|
|
03.09.2015, 23:15 [ТС] | 8 |
Байт, Вы отлично расписали формулу по которой работает цикл.
Добавлено через 58 секунд Даценд, верно, алгоритмы будут в программе по вышке.
0
|
Музыка нас Связала
232 / 232 / 52
Регистрация: 26.03.2008
Сообщений: 616
|
|
03.09.2015, 23:18 | 9 |
Область дискретной математики, если проходили - будете знать, если нет, то пройдёте. На сессии не спрашивают, то чего еще не было, или не интердисциплинарно.
Мы то поняли, почти та же кобыла, только вид с другой стороны.
0
|
Диссидент
27706 / 17322 / 3812
Регистрация: 24.12.2010
Сообщений: 38,979
|
|
04.09.2015, 09:08 | 10 |
Туповат стал чего-то.То, что числа i*(i-1), ... i*(i-2) - составные, с этим я не спорю. Кстати, последнее ваше число i*(i-(i-1)) = i*1 = i - не обязательно составное.
Но как из этого соображения следует, что делители большие sqrt(N) рассматривать не стоит - это для меня загадка
0
|
Музыка нас Связала
232 / 232 / 52
Регистрация: 26.03.2008
Сообщений: 616
|
|
04.09.2015, 10:12 | 11 |
Вывод более интуитивный, нежели научный. Суть состояла в том, что мы имеем последовательность
То, что продукты чисел не являются простыми (Хотя сами числа могум ими быть, но они меньше N, а значит нам не интересны), мы знаем из предыдущих итераций, а вот о числах больше i, мы ничего не знаем. Хоть и логично, что продукты не простые. О самих же мы мало что можем сказать, ибо мы их проверим только в "будущем". Отсюда следует, что максимум мы можем быть уверены, в числах только до i * i, но не более. Ваш вариант был более коротким, и с формулой, для лучшего пониманая, но суть та же, максимальный лимит на проверку.
0
|
Диссидент
27706 / 17322 / 3812
Регистрация: 24.12.2010
Сообщений: 38,979
|
|
04.09.2015, 10:24 | 12 |
Ну, если интуитивный...
Да, не такой уж я и тупой, что-то начал понимать... Но сложновато как-то... Такая простенькая задачка, а тут продукты, последовательности, надежды на будущее... Впрочем, давно замечено, что работы первооткрывателей часто неуклюжи...
0
|
04.09.2015, 10:24 | |
04.09.2015, 10:24 | |
Помогаю со студенческими работами здесь
12
Вычислить факториал введенного числа (цикл for) Цикл. Выброс цифр из введенного числа Вычислить факториал числа, введенного с клавиатуры, используя цикл с предусловием Вычислять сумму чисел, нацело делящихся на 5. Цикл while задать от 0 до введенного с клавиатуры числа Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |