Книга, кажется, "C ++ для инженеров и ученых"
написанный Гари Бронсоном (погуглил).
Это возможный ответ? ИМХО это удивительно.
Мне пришлось читать вопрос (из книги) несколько раз.
Моя интерпретация:
Для каждого числа N: 2 <= N <100 проверьте, является ли оно простым. <br>
Как? Для каждого делителя D: 2 <= D <sqrt (N), <br>
если D делит N, N не простое число,
если D> sqrt (N), то N простое.
Попробуйте:
N = 2, sqrt(2) ≈ 1.41, D = 2, 2 < 1.41 ? no 2 > 1.41 ? yes 2 is prime.
N = 3, sqrt(3) ≈ 1.73, D = 2, 2 < 1.73 ? no 2 > 1.73 ? yes 3 is prime.
N = 4, sqrt(4) = 2.00, D = 2, 2 < 2.00 ? no 2 > 2.00 ? no 4 is not prime.
N = 5, sqrt(5) ≈ 2.24, D = 2, 2 < 2.24 ? yes 5 % 2 > 0? yes
D = 3, 3 < 2.24 ? no 3 > 2.24 ? yes 5 is prime.
N = 6, sqrt(6) ≈ 2.45, D = 2, 2 < 2.45 ? yes 6 % 2 = 0 2 > 2.45 ? no 6 is not prime.
Насколько я понимаю, вот как должны быть найдены простые числа,
не с ситом (намного, намного быстрее),
но с: ответ в вопросе! Удивительно?
Скорость? простые числа <400 000: менее 10 секунд (на моих часах, rolex, я купил их на рынке, продавец сказал, что это был настоящий, настоящий по цене двух багетов с 12 настоящими бриллиантами). <br>
Давайте посчитаем простые числа (я не собираюсь показывать код;):
664579 простых чисел <10 000 000: 5 секунд. </p>
#include "stdafx.h"
#include <math.h>
#include <iostream>
using namespace std;
int main()
{
double rt;
for (int d = 2, n = 2; n < 100; d = 2, n++)
{
for (rt = sqrt(n); d < rt; d++)
if (n % d == 0) break;
if (d > rt) cout << n << " ";
}
getchar(); // 25 primes :-)
}
Удален более ранний ответ с (как и другие ответы) простым ситом.
Надеюсь, скоро я получу свой следующий значок "Некромант".
Я спросил автора: в вашей книге: "C ++ для E & S"
это упражнение о простых числах, [xrcs] ... [/ xrcs].
Семь лет назад его спросили по адресу: SO / q / 5200879
Несколько дней назад я дал ответ: SO / a / 49199435
Как вы думаете, это разумное решение или, возможно, решение.
Он ответил: Питер, я никогда не имею в виду конкретного решения
когда я составляю упражнения,
поэтому я не могу сказать, что я имел в виду ваше точное решение.
Радость C ++ в том, что можно придумать действительно креативные решения и отличный код,
как, на первый взгляд, похоже, что вы сделали.
Спасибо за отправку!
Доктор Бронсон
Я пошел к https://youtu.be/1175axY2Vvw
PS. Сито: https://pastebin.com/JMdTxbeJ