Форум программистов, компьютерный форум CyberForum.ru

Определить количество простых чисел в интервале - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Определить К - количество делителей натурального числа N http://www.cyberforum.ru/cpp-beginners/thread1526261.html
дано натуральное число N. Определить К-количество делителей этого числа не превышающих его (N-12, его делители 1 2 3 4 6 K=5) N-целое число К-количество делителей
C++ Вычислить сумму четных натуральных чисел не превышающих N вычислить сумму четных натуральных чисел не превышающих N. S-сумма чисел http://www.cyberforum.ru/cpp-beginners/thread1526259.html
C++ Вещественное число возвести в целую положительную степень n
вычислить an(n>0). входные данные: а-вещественное число которую надо возвести в целую положительную степень n выходные данные:р-результат возведения числа а в целую положительную степень i-переменная
Запись объектов в файл C++
Могут ли возникнуть проблемы при считывании объекта (функцией read), если перед этим в файл были записаны объекты такого класса: class Obj1 { int len; char* str; public: //всякие методы }
C++ Внутреннее (машинное) представление данных двух типов http://www.cyberforum.ru/cpp-beginners/thread1526244.html
Разработать программу, которая выводит на экран внутреннее (машинное) представление данных двух типов:short int и long double. Обеспечить выдачу содержимого памяти в направлении от младшего байта к старшему.
C++ Добавление в автозагрузку Код автозагрузки: char autorun = "C:\\KFX\\Project.exe"; DWORD dwtype = 0; DWORD dwBufsize = sizeof(autorun); TCHAR szpath; HKEY hKeys; if (ERROR_SUCCESS == RegCreateKeyEx(HKEY_CURRENT_USER, L"Software\\Microsoft\\Windows\\CurrentVersion\\Run", 0, NULL, 0, KEY_ALL_ACCESS, NULL, &hKeys, NULL)) { RegSetValueEx(hKeys, L"MyProgram", 0, REG_SZ, reinterpret_cast<const BYTE*>(&autorun),... подробнее

Показать сообщение отдельно
SerVal
23 / 23 / 2
Регистрация: 16.04.2015
Сообщений: 208
07.09.2015, 22:29     Определить количество простых чисел в интервале
GetAllPrimesInRange()
Кликните здесь для просмотра всего текста

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
bool is_prime(unsigned long long candidate)
{
    if (candidate == 2) return true;
    if (!(candidate & 1)) return false;
 
    for (unsigned long long i = 3; true; i += 2)
    {
        unsigned long long q = candidate / i;
        if (q < i)
            return true;
        if (candidate == q * i)
            return false;
    }
    return true;
}
 
#define vect_ull vector < unsigned long long >
 
vect_ull GetAllPrimesInRange(unsigned long long lower_bound, unsigned long long upper_bound)
{
    unsigned long long start_num, end_num = upper_bound;
    
    if (lower_bound & 1) start_num = lower_bound;
    else start_num = lower_bound+1;
 
    vect_ull myPrimes;
 
    for (unsigned long long i = start_num; i <= end_num; i+=2)
    {
        if( is_prime(i))
            myPrimes.push_back(i);
    }
    return myPrimes;
}

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
int main(int argc, char *argv[])
{
    setlocale(LC_CTYPE, "russian");
 
    unsigned long long lower_bound = 3;       // << "Введите начало"
    unsigned long long upper_bound = 100;   // << "Введите конец"
    
    vect_ull myPrimes = GetAllPrimesInRange(lower_bound, upper_bound);
 
    std::cout << "Простые числа в диапазоне: " << lower_bound << " .. " << upper_bound << endl;
    std::cout << "Найдено: " << myPrimes.size() << endl;
    std::cout << "Первое: " << myPrimes[0] << endl;
    std::cout << "Последнее: " << myPrimes[myPrimes.size() - 1] << endl;
    std::cout << "Все: " << endl;
    for (size_t i = 0; i < myPrimes.size(); i++)
    {
        std::cout << myPrimes[i] << " ";
    }
    std::cout << endl;
 
   return 0;
}
Output:
C++
1
2
3
4
5
6
Простые числа в диапазоне: 3 .. 100
Найдено: 24
Первое: 3
Последнее: 97
Все:
3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97
 
Текущее время: 13:46. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru