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

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

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

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


Бывалый
***

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

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


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

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


--------------------
♣♣♣
"Себя великим не считай, гордясь величьем предков,
Величья не добудешь ты и золота ценою!
Хоть светит на небе луна, но отраженным светом -
Чужою славой не живи, не будь второй луною!!!"
♣♣♣
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
amega
сообщение 24.05.2009 18:31
Сообщение #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 
 К началу страницы 
+ Ответить 
Cheburashka
сообщение 24.05.2009 18:52
Сообщение #3


Бывалый
***

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

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


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

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

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


--------------------
♣♣♣
"Себя великим не считай, гордясь величьем предков,
Величья не добудешь ты и золота ценою!
Хоть светит на небе луна, но отраженным светом -
Чужою славой не живи, не будь второй луною!!!"
♣♣♣
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 24.05.2009 19:22
Сообщение #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);

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


Бывалый
***

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

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


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

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


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


Гость






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


Бывалый
***

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

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


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


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


?
***

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

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


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


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


Бывалый
***

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

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


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

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


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


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

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

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


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

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


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


Бывалый
***

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

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


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


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

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

 



- Текстовая версия 18.06.2025 10:20
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"