С наступающим Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/10: Рейтинг темы: голосов - 10, средняя оценка - 4.80
DeniZz
0 / 0 / 1
Регистрация: 25.10.2010
Сообщений: 10
1

Найти простые числа пользуясь методом решета Эратосфена НЕ используя массивы

25.10.2010, 18:56. Просмотров 1946. Ответов 3
Метки нет (Все метки)

Задача формулируется простыми словами: найти простые числа 0..N пользуясь методом решета Эратосфена НЕ используя массивы. Препод сказал задача не тревиальная и решимая.
З.Ы. Учить С мы только начали, следовательно ниче такого сверх-сверх в проге юзать низзя. Хотяя... Но сам лично в си немного шарю. В консольном пока только)
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.10.2010, 18:56
Ответы с готовыми решениями:

Найти простые числа в заданном диапазоне с помощью решета Эратосфена
Задача: вывести простые числа в диапозоне от А до В. ( 2 ≤ А и ≤ В ≤ 100000...

Найти простые числа в заданном диапазоне с помощью решета Эратосфена и вывести их в файл
Для зачета задали написать программу для нахождения простых чисел от 1 до...

Вывести простые числа от 1 до 1000000 с помощью решета Эратосфена
Вывести список простых чисел от 1 ого до млн.(1000000) с помощью решета...

Найти все простые числа, не превышающие число n, используя решето Эратосфена
Дано натуральное число n (n>=2). Найти все простые числа, не превышающие число...

Решето Эратосфена: найти все простые числа в интервале от A до B включительно
По введённым числам A и B вывести все простые числа в интервале от A до B...

3
Mayonez
382 / 274 / 53
Регистрация: 26.12.2009
Сообщений: 875
25.10.2010, 21:04 2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
 
int main()
{
   int i, j;
   int SZ = 100; // предел поиска простых чисел
   for (i = 2; i < SZ; i++) //перебираем числа
   {
      bool y = 1;
      for (j = 2; j < i; j++)
            if (i%j == 0) {y = 0; break;} // значит не простое
      if(y) std::cout << i << std::endl;
   }
 
   return 0;
}
1
odip
Эксперт С++
7164 / 3222 / 77
Регистрация: 17.06.2009
Сообщений: 14,160
25.10.2010, 21:54 3
для скорости

1) 2 лучше проверять отдельно
остальные же проверять как 3,5,7,9,...

2) достаточно проверять не до i, а до корня из i
то есть пока j*j<i
0
Mayonez
382 / 274 / 53
Регистрация: 26.12.2009
Сообщений: 875
27.10.2010, 14:41 4
odip, так?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
 
int main()
{
   int i, j;
   int SZ = 100;            // предел поиска простых чисел
   for (i = 2; i < SZ; i++) //перебираем числа
   {
      bool y = 1;           // пусть будет простое
      if (i%2 == 0) y = 0;  //делится нацело на 2, значит не простое
      for (j = 3; (j*j <= i) && y; j+=2)
            if (i%j == 0) {y = 0; break;} // делится нацело на какое
                           //нибудь число до корня значит не простое
      if(y) std::cout << i << std::endl;
   }
   return 0;
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.10.2010, 14:41

Игра на основе решета эратосфена
Доброго времени суток, нужна ваша помощь в написании программы &quot;Разработать...

Простые числа. Решето Эратосфена
Здравствуйте! Нужна ваша помощь, не могу понять условие этой задачи: Даны...

Реализовать генератор простых чисел с использованием решета Эратосфена и перебора делителей
В этой задаче мы реализуем генератор простых чисел. Простыми называются...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru