Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Программирование на C++, Простые числа 
:(
    Опции темы
Вадим
Дата 22.12.2003, 02:55 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Помогите создать программу, которая выводит на экран простые числа в диапазоне от 2 до 1000.
  Вверх
_hunter
Дата 22.12.2003, 10:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 16
Всего: 98



почитай эту статейку
http://stob.by.ru/prostie.htm
все должно быть понятно


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
Kefir
Дата 22.12.2003, 20:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


«Hakuna Matata»
***


Профиль
Группа: Комодератор
Сообщений: 1878
Регистрация: 25.1.2003
Где: Tampere, Suomi

Репутация: нет
Всего: 87



поскольку числа небольшие, то вполне подойлёт и такой вариант:

Код
bool prostoe(int a)
{
 if(a==1) return true;
 for(int c=2; c<a; c++) if(a%c==0) return false;
 return true;
}
void main()
{
 for(int number=2; number<=1000; number++)
 { if(prostoe(number)) cout<<number<<endl; }
}

PM MAIL WWW Skype   Вверх
Paradox
Дата 23.12.2003, 07:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1135
Регистрация: 18.11.2002
Где: Россия

Репутация: нет
Всего: 1



можно кстати сравнение делать не
Код
c<a
а
Код
с<a/2+1



--------------------
---
PM MAIL WWW   Вверх
Kefir
Дата 23.12.2003, 09:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


«Hakuna Matata»
***


Профиль
Группа: Комодератор
Сообщений: 1878
Регистрация: 25.1.2003
Где: Tampere, Suomi

Репутация: нет
Всего: 87



Paradox, правильное замечание.
PM MAIL WWW Skype   Вверх
maxim1000
Дата 23.12.2003, 11:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 3334
Регистрация: 11.1.2003
Где: Киев

Репутация: 17
Всего: 110



Цитата
можно кстати сравнение делать не CODE 
c<a
а CODE 
с<a/2+1

c*c<=a


--------------------
qqq
PM WWW   Вверх
Paradox
Дата 23.12.2003, 12:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1135
Регистрация: 18.11.2002
Где: Россия

Репутация: нет
Всего: 1



а еще можно четные числа сразу выкинуть из рассмотрения т.е. не number++, а number+2


--------------------
---
PM MAIL WWW   Вверх
Paradox
Дата 23.12.2003, 12:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1135
Регистрация: 18.11.2002
Где: Россия

Репутация: нет
Всего: 1



Естественно цикл надо начинать не с 2 тогда


--------------------
---
PM MAIL WWW   Вверх
Dov
Дата 23.12.2003, 21:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


аСинизатор
***


Профиль
Группа: Завсегдатай
Сообщений: 1721
Регистрация: 10.5.2003
Где: Эрец-Исраэль

Репутация: 15
Всего: 88



Вот здесь я нашёл рекурсивную реализацию
"решета Эратосфена" на паскале. Поскольку подобные вопросы задаются частенько, то я
сделал робкую попытку перевести это дело на С++.
И вот, что из этого вышло:
Код
#include <iostream.h>
#define max 1000

void eratosfen(int ar[], int size, int i)
{    
   if(i < size)
   {
       int z = i;  
       while(z <= size)
       {
           z += i;
           for(int j = 0; j < size; j++)
               if(z == ar[j])
                   ar[j] = 0;
       }
       eratosfen(ar, size, i + 1);  
   }
}

void main()
{
   int chisla[max];
   int i = 0;

   while(i < max)
       chisla[i++] = i + 1;
   eratosfen(chisla, max, 2);
   for(i = 0; i < max; i++)  
       if(chisla[i])      
           cout << chisla[i] << endl;
}

Звыняйте, ежели что не так, потому как паскалем, увы, не владею.


--------------------
Тут вечности запах томительный,
И свежие фрукты дешевые, 
А климат у нас – изумительный, 
И только соседи – #уевые. 
                           Игорь Губерман.
PM   Вверх
Вадим
Дата 24.12.2003, 00:22 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Всем спасибо!!!
С Вашей помощью разобралсяsmile.gif))


  Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0531 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.