3 / 2 / 1
Регистрация: 16.04.2021
Сообщений: 190
1

Найти простые числа в первой тысяче натуральных чисел

17.04.2021, 11:10. Показов 1050. Ответов 7
Метки нет (Все метки)

Найти в первой тысячи натуральных чисел только те числа, которые являются простыми. Вывести их на экран по одному в каждой строке.
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.04.2021, 11:10
Ответы с готовыми решениями:

Найти в первой тысяче натуральных чисел те, которые делятся без остатка на заданное пользователем число
Найти в первой тысячи натуральных чисел только те числа, без остачи делятся на число , введено...

В заданной последовательности натуральных чисел найти простые числа
Задана натуральная числовая последовательность, признаком завершения которой является ноль,...

Заданна последовательность натуральных чисел N, Найти в этой последовательности взаимно простые числа
Заданна последовательность натуральных чисел N, Найти в этой последовательности взаимно простые...

Интервал натуральных чисел. Найти все простые числа в этом интервале и их количество.
Дан интервал натуральных чисел от N до М. Найти все простые числа в этом интервале и их количество.

7
318 / 215 / 114
Регистрация: 14.05.2020
Сообщений: 890
17.04.2021, 12:51 2
Serhey_d__20,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include <iostream>
using namespace std;
 
void sieve(bool* arr, size_t n)
{
    for(size_t i = 2; i * i < n; ++i)
    {
        if(!arr[i])
        {
            for(size_t j = i * i; j < n; j += i)
            {
                arr[j] = true;
            }
        }
    }
}
 
int main(void)
{
    size_t n = 1000;
    bool* arr = new bool[n];
    
    for(size_t i = 2; i < n; ++i) arr[i] = false;
    sieve(arr, n);
    for(size_t i = 2; i < n; ++i)
    {
        if(!arr[i]) cout << i << endl;
    }
    
    delete[] arr;
    arr = nullptr;
    
    cin.get();
    return EXIT_SUCCESS;
}
2
Эксперт CЭксперт С++
3458 / 2038 / 1113
Регистрация: 14.12.2018
Сообщений: 4,001
Записей в блоге: 1
17.04.2021, 13:09 3
Лучший ответ Сообщение было отмечено Serhey_d__20 как решение

Решение

Serhey_d__20,
Можно попробовать:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include <iostream>
#include <cmath>
using namespace std;
 
bool isPrime(int n)
{
    if (n < 2)
        return false;
    else if (n == 2 || n == 3)
        return true;
    int k = (int)sqrt(n);
    for (int i = 2; i <= k; i++)
        if (n % i == 0)
            return false;
    return true;
}
 
int main()
{
    setlocale(LC_ALL, "ru");
 
    for (int i = 1; i <= 1000; i++)
        if (isPrime(i))
            cout << i << endl;
 
    system("pause");
    return 0;
}
0
Диссидент
Эксперт C
26856 / 16758 / 3675
Регистрация: 24.12.2010
Сообщений: 37,521
17.04.2021, 13:45 4
Цитата Сообщение от VLaDoS_2001a Посмотреть сообщение
for(size_t i = 2; i * i < n; ++i)
Ошибочка вышла...
Так у 9 и 25 простыми выходят...
Сменить надо на "<="

Добавлено через 2 минуты
Хотя, простите, у вас решето... Возможно я и не прав...

Добавлено через 5 минут
Цитата Сообщение от Volga_ Посмотреть сообщение
int k = (int)sqrt(n);
Лично я предпочитаю в целочисленных задачах не привлекать плавающую арифметика (от греха подальше)
И вместо этого
C
1
i*i <= n
1
1476 / 934 / 282
Регистрация: 25.01.2019
Сообщений: 2,355
17.04.2021, 13:45 5
Цитата Сообщение от Байт Посмотреть сообщение
Так у 9 и 25 простыми выходят
Я проверил наискось, там и псевдопростых вроде нет и количество совпадает
0
Эксперт CЭксперт С++
3458 / 2038 / 1113
Регистрация: 14.12.2018
Сообщений: 4,001
Записей в блоге: 1
17.04.2021, 13:46 6
Цитата Сообщение от Байт Посмотреть сообщение
И вместо этого
Спасибо. Вы правы.
0
Диссидент
Эксперт C
26856 / 16758 / 3675
Регистрация: 24.12.2010
Сообщений: 37,521
17.04.2021, 13:48 7
VLaDoS_2001a, А когда речь идет о простоте множества чисел, решето, конечно, лучше.

Добавлено через 1 минуту
Цитата Сообщение от Folian Посмотреть сообщение
Я проверил наискось, там и псевдопростых вроде нет и количество совпадает
Да, это я ошибся, и ошибку свою уже признал.
1
1476 / 934 / 282
Регистрация: 25.01.2019
Сообщений: 2,355
17.04.2021, 13:50 8
Решето Эратосфена называется?
Выглядит покрасивше обычного брутфорса.
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.04.2021, 13:50
Помогаю со студенческими работами здесь

В одномерном массиве, состоящем из N натуральных чисел найти все простые числа из заданного интервала [a,b]
В одномерном массиве, состоящем из N натуральных чисел найти все простые числа из заданного...

Найти N-ое по величине из натуральных чисел, в разложение которых на простые множители входят только числа P1, P2 и P3.
Дано натуральное N и три простых числа P1, P2, P3. Найти N-ое по величине из натуральных чисел, в...

Найти в первой тысячи натуральных чисел только те числа, которые являются простыми
Найти в первой тысячи натуральных чисел только те числа, которые являются простыми. Вывести их на...

Найти в первой тысячи натуральных чисел только те числа, без остатка делятся на число
Найти в первой тысячи натуральных чисел только те числа, без остатка делятся на число, введенное...

Дано натуральное число N. Найти сумму первых n натуральных чисел, которые не делятся ни на какие простые числа, кроме 2, 3 и 5
Дано натуральное число N. Найти сумму первых n натуральных чисел, которые не делятся ни на какие...

Из последовательности натуральных чисел от 2 до N выбрать все простые числа
1)составить программу которая из последовательности натуральных чисел от 2 до N будет набирать все...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru