IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Маленькая задача на числа
сообщение
Сообщение #1


Бывалый
***

Группа: Пользователи
Сообщений: 195
Пол: Мужской
Реальное имя: Сергей

Репутация: -  2  +


Задано натуральное число N. Требуется написать программу, которая находит количество натуральных чисел, не превышающих N и не делящихся ни на одно из чисел 2, 3, 5.
Ограничения 1 <= N <= 10^9

Я попытался сделать задачу глупым перебором, но как Вы сами понимаете это глупо... Так что подскажите мне другой метод решения)


--------------------
♣♣♣
"Себя великим не считай, гордясь величьем предков,
Величья не добудешь ты и золота ценою!
Хоть светит на небе луна, но отраженным светом -
Чужою славой не живи, не будь второй луною!!!"
♣♣♣
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


?
***

Группа: Пользователи
Сообщений: 283
Пол: Мужской

Репутация: -  4  +


проходить в цикле и проверять условие

j:=0;
for i:=1 to n do
if (i mod 2 <> 0) and (i mod 3 <> 0) and (i mod 5 <> 0) then inc(j);

 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Бывалый
***

Группа: Пользователи
Сообщений: 195
Пол: Мужской
Реальное имя: Сергей

Репутация: -  2  +


Я же ведь говорю что глупым перебором задачу глупо решать!!! Возьмите у себя число 1 000 000 и посмотрите как долго она прокручиваться будет!

Я бы хотел более быстрым методом сделать...

Сообщение отредактировано: Сергей Меркурьев -


--------------------
♣♣♣
"Себя великим не считай, гордясь величьем предков,
Величья не добудешь ты и золота ценою!
Хоть светит на небе луна, но отраженным светом -
Чужою славой не живи, не будь второй луною!!!"
♣♣♣
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гость






Сергей Меркурьев, а не надо считать все подряд smile.gif

Можешь воспользоваться тем фактом, что в каждой тридцатке чисел, тех чисел, которые тебя устраивают (не делящихся на 2, 3 или 5) ровно 8 штук: 1, 7, 11, 13, 17, 19, 23, 29... То есть,
  j := 8*(N div 30);
for i := 1 to (N mod 30) do
if (i mod 2 <> 0) and (i mod 3 <> 0) and (i mod 5 <> 0) then inc(j);
writeln(j);

Выдаст тебе результат мгновенно...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Бывалый
***

Группа: Пользователи
Сообщений: 195
Пол: Мужской
Реальное имя: Сергей

Репутация: -  2  +


Действительно!! А я то тут мудрил искал закономерность совсем в другом))) Оказалось всё так просто)) Спасибо!

Слушайте, а может быть ещё какое-нибудь решение данной задачи?


--------------------
♣♣♣
"Себя великим не считай, гордясь величьем предков,
Величья не добудешь ты и золота ценою!
Хоть светит на небе луна, но отраженным светом -
Чужою славой не живи, не будь второй луною!!!"
♣♣♣
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Гость






Более быстрое - вряд ли, хотя можно забить эти 8 чисел в массив и проверять на сами числа, без деления на 2, 3, 5. Но насколько это ускорит алгоритм? Мелочи... Или речь о совершенно других решениях (кроме перебора)?
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Бывалый
***

Группа: Пользователи
Сообщений: 195
Пол: Мужской
Реальное имя: Сергей

Репутация: -  2  +


Да в принципе это практически ничего не даст... Ещё раз спасибо.


--------------------
♣♣♣
"Себя великим не считай, гордясь величьем предков,
Величья не добудешь ты и золота ценою!
Хоть светит на небе луна, но отраженным светом -
Чужою славой не живи, не будь второй луною!!!"
♣♣♣
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


?
***

Группа: Пользователи
Сообщений: 283
Пол: Мужской

Репутация: -  4  +


Цитата
Слушайте, а может быть ещё какое-нибудь решение данной задачи?


можно если знать матиматику, можно разложить в ряд и ккто попробывать реализовать формулу которая бы считала елементы...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Бывалый
***

Группа: Пользователи
Сообщений: 195
Пол: Мужской
Реальное имя: Сергей

Репутация: -  2  +


Мне кажется что формулой считать бессмысленно так, как тут то и не найти такой закономерности))

Если учитывать что почти в каждой десятке (может через один, может через два) встречаются на конце чисел вот такие цифры - 1 3 7 9...
Но во многих десятках встречается только 1 и 7 или 3 и 9... Так что (как мне кажется) формулу выводить здесь сложно...


--------------------
♣♣♣
"Себя великим не считай, гордясь величьем предков,
Величья не добудешь ты и золота ценою!
Хоть светит на небе луна, но отраженным светом -
Чужою славой не живи, не будь второй луною!!!"
♣♣♣
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Цитата(amega @ 24.05.2009 21:16) *
можно если знать матиматику, можно разложить в ряд и ккто попробывать реализовать формулу которая бы считала елементы...
amega, открой секрет, что именно ты хотел раскладывать в ряд? и что за элементы считать? smile.gif))

А еще можно наговорить много умных слов, не очень заботясь о смысле))
Я извиняюсь, если задел кого. Но уж больно забавно lol.gif


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #11


Бывалый
***

Группа: Пользователи
Сообщений: 195
Пол: Мужской
Реальное имя: Сергей

Репутация: -  2  +


В принципе всем спасибо за помощь)


--------------------
♣♣♣
"Себя великим не считай, гордясь величьем предков,
Величья не добудешь ты и золота ценою!
Хоть светит на небе луна, но отраженным светом -
Чужою славой не живи, не будь второй луною!!!"
♣♣♣
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #12


Гость






Цитата(Сергей Меркурьев @ 24.05.2009 23:28) *

Действительно!! А я то тут мудрил искал закономерность совсем в другом))) Оказалось всё так просто)) Спасибо!

Слушайте, а может быть ещё какое-нибудь решение данной задачи?

гомосеки
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 29.03.2024 22:13
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name