Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.91/125: Рейтинг темы: голосов - 125, средняя оценка - 4.91
 Аватар для nepster
61 / 61 / 11
Регистрация: 19.09.2009
Сообщений: 844

Вывести все простые числа от 0 до 100 (цикл while)

08.10.2009, 21:37. Показов 24961. Ответов 26

Студворк — интернет-сервис помощи студентам
Подскажите пожалуйста как при помощи цикла while и проверки вывести на экран все простые числа от 0 до 100. (1,3,5,7,11,13,17....)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
08.10.2009, 21:37
Ответы с готовыми решениями:

Цикл: Найти и напечатать все простые числа, меньше 100
Надо написать программу, которая находит и печатает все простые числа меньше 100, дайте, пожалуйста, пример, от которого можно...

Вывести все простые числа от 0 до 100
Вывести все простые числа от 0 до 100

Вывести все простые числа от 2 до 100
Нужно вывести все простые числа от 2 до 100 for i in range (2, 100): i = False for j in range (2, i): if i == j: ...

26
 Аватар для Olga_
848 / 190 / 18
Регистрация: 01.08.2011
Сообщений: 505
13.08.2011, 13:52
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от x-positive Посмотреть сообщение
Как вариант введу свой код, может кому-то пригодится:
(код готовой программы, которая выводит все простые числа, меньше чем число N)

C++
1
2
3
#include <stdio.h>
while (X<N)
   for (I = 2; I < X; I++) if (!(X % I)) Z = 0;
С таким внутренним циклом for это как идти в магазин за хлебом и каждый дом, стоящий на пути, по 10 раз вокруг обходить, а то и больше
0
Higher
 Аватар для diagon
1953 / 1219 / 120
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
13.08.2011, 13:55
Нашел у себя быдлокод, заточенный под эту задачу
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <fstream>
#include <cmath>
int p[99999], k, i = 3, f, s, j, c, q, x;
main(){
    std::fstream("input.txt") >> f >> s;
    std::ofstream o("output.txt");
    if (f == 2) { o << 2 << ' '; c = 1; }
    for (; i <= s; i+=2){
        x = 1;
        for (j = 0, q = sqrt(1. * i); j < k && p[j] <= q; )
            if (i % p[j++] == 0) {x = 0; break;}
        if (x) {
            p[k++] = i; 
            if ( i >= f) {o << i << ' '; c = 1;}
        }
    }
    if (!c) o << "Absent"; 
}
Просто перебор всех нечетных чисел и проверка, делится ли число на числа до своего корня там по времени не проходит =)
0
 Аватар для Olga_
848 / 190 / 18
Регистрация: 01.08.2011
Сообщений: 505
13.08.2011, 14:00
Цитата Сообщение от diagon Посмотреть сообщение
Нашел у себя быдлокод...
Просто перебор всех нечетных чисел и проверка, делится ли число на числа до своего корня там по времени не проходит =)
И почему бы вам решетом Эратосфена не воспользоваться, с таким диапазоном почти никаких расходов памяти.
1
Higher
 Аватар для diagon
1953 / 1219 / 120
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
13.08.2011, 14:07
Цитата Сообщение от Olga_ Посмотреть сообщение
почему бы вам решетом Эратосфена не воспользоваться, с таким диапазоном почти никаких расходов памяти.
Я тогда о нем не знал, да и пройдет он разве...
Там же O(nloglogn), а числа надо до 10^6 перебрать менее чем за секунду.
Вышеприведенный код и то за полсекунды справляется =(
0
Эксперт С++
 Аватар для grizlik78
2383 / 1667 / 279
Регистрация: 29.05.2011
Сообщений: 3,402
13.08.2011, 14:09
Цитата Сообщение от diagon Посмотреть сообщение
Я тогда о нем не знал, да и пройдет он разве...
Там же O(nloglogn), а числа надо до 10^6 перебрать менее чем за секунду.
Ну я как раз им и делал. Да и первые два места вряд ли чем другим. Хотя, кто знает
0
 Аватар для Olga_
848 / 190 / 18
Регистрация: 01.08.2011
Сообщений: 505
13.08.2011, 14:15
Цитата Сообщение от diagon Посмотреть сообщение
Я тогда о нем не знал, да и пройдет он разве...
Там же O(nloglogn), а числа надо до 10^6 перебрать менее чем за секунду.
Вышеприведенный код и то за полсекунды справляется =(
В логическом массиве размера не более 1 Мб должен быстро пройти. Других более быстрых алгоритмов вроде бы нет. Здесь нет делений, одни присвоения и плюсы в цикле. Не зря диапазон от M до N задан, это неспроста

Добавлено через 2 минуты
Цитата Сообщение от grizlik78 Посмотреть сообщение
Ну я как раз им и делал. Да и первые два места вряд ли чем другим. Хотя, кто знает
Это да. Вот если бы число N было бы неограниченным таким очевидным образом, что именно алгоритм Эратосфена, то пришлось бы поломать голову
0
Эксперт С++
 Аватар для grizlik78
2383 / 1667 / 279
Регистрация: 29.05.2011
Сообщений: 3,402
13.08.2011, 14:19
Цитата Сообщение от Olga_ Посмотреть сообщение
Других более быстрых алгоритмов вроде бы нет.
Решето Аткина должно быть более быстрым и требует меньше памяти. Но оно многократно сложнее этого незатейливого алгоритма и я пока не решился на его реализацию А уж если в рейтинг пытаться влезть, то точно не подойдёт.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
13.08.2011, 14:19

Вывести все простые числа до 100
Задача такова &quot;выведите все простые числа до 100&quot;, с помощью циклов (без массивов) и заумных вещей. Вот что наковырял. Не могу доделать....

Вывести все простые числа из диапазона от 1 до 100
Что не так с кодом? Должен выводить все простые числа от 1 до 100. Только учусь, потому может быть простая ошибка, но не #include...

Найти все простые числа до 100 и вывести их в combobox
Всем привет, помогите пожалуйста. Нужно найти все простые числа до 100, и вывести их в combobox.(программа должна сама рассчитывать простые...

Цикл: Вывести все простые числа в диапазоне от 1 до N
Вывести все простые числа в диапазоне от 1 до N

Цикл: Вывести все простые числа от M до N включительно
Вывести все простые числа от M до N включительно. Вывести числа в порядке возрастания, по одному в строке. Если между M и N включительно...


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

Или воспользуйтесь поиском по форуму:
27
Ответ Создать тему
Новые блоги и статьи
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
Как ИИ начал спорить и врать (возможно почуяв опасность для себя от индустрии - уход от электроники).
Hrethgir 04.08.2026
Недельный диалог, на фоне событий с НПЗ. Да, из спирта можно получать бензин, и это не сложно. Но потом в схеме я решил избавиться от насоса, при этом полностью сделав контроль подачи спирта в. . .
Термопринтер QR701
Argus19 03.08.2026
Термопринтер QR701 Купил два термопринтера QR701. На сэлф-тесте написано: Language: PC936 (GB18030). Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
Создание формы заимствованного документа
Maks 03.08.2026
Задача: Необходимо создать собственную форму заимствованного документа. На форме должен быть реквизит "Покупатель", а также табличная часть со следующими реквизитами: - Расчетный счет покупателя. . .
Задача предоставления скидок покупателям
Maks 03.08.2026
Задача: В документе "Продажи" необходимо реализовать функционал предоставления скидок покупателям. Скидка должна автоматически рассчитываться и подставляться в соответствующее поле при выборе. . .
Почему SEO не начинается с ключевых слов: что проверить до написания текстов
Neotwalker 01.08.2026
Когда владельцу сайта предлагают заняться SEO, первым шагом часто становится сбор запросов и написание текстов. Логика кажется понятной: 1. Находим ключевые слова. 2. Добавляем их на. . .
Знание — сила: Доктрина интенциональности знаний, углубление в формулу
Hrethgir 01.08.2026
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11957&stc=1&d=1785567302 Знаменитый афоризм Фрэнсиса Бэкона «Знание — сила» (Scientia potentia est) в массовой культуре принято понимать. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru