С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

Задача с простыми числами - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Меняется значение указателя http://www.cyberforum.ru/cpp-beginners/thread1049987.html
Пытаюсь сделать односвязный список, но с этими указателями постоянно проблемы=( Помогите плз #include "stdafx.h" #include <iostream> using namespace std; template <class T> class queue{ //класс...
C++ Дискретная математика Здравствуйте! Помогите с зачетным задание! Вот оно: Дано несколько вершин, количество которых необходимо указать вручную и которые расположены в случайных координатах. Указать каждой вершине ее... http://www.cyberforum.ru/cpp-beginners/thread1049980.html
C++ Вычислить значение выражения
Здравствуйте, В общем нужно написать программу, которая будет выполнять операцию (картинка прилагается) Где b, z и q параметры, которые нужно вводить. С разъяснениями, пожалуйста. Спасибо...
Блок-схема для программы на C++ C++
Здраствуйте. Надо сделать блок-схему для одной программы на C++. Кто может? #include <iostream> using namespace std; int main() { int mass = {11,1,7,77,99,9,33,27,31,66,777};
C++ Выдача символа в файл http://www.cyberforum.ru/cpp-beginners/thread1049966.html
как написать программу подобного рода: Написать программу, которая выдает в файл код введенного с экрана символа.
C++ Из массива q сформировать массив d(20;20) Пожалуйста помогите написать программу на языке С++. Из массива q сформировать массив d(20;20) в котором на главной диагонали расположить элементы массива в порядке возрастания, а остальные, а... подробнее

Показать сообщение отдельно
gromo
372 / 271 / 24
Регистрация: 04.09.2009
Сообщений: 1,214
20.12.2013, 19:46
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
36
37
38
39
40
41
42
43
44
#include <iostream>
#include <math.h>
int isPrime(unsigned long a)
{
   unsigned long i1, i2, i3, i4, i5, i6, i7, i8, bound;
   if (a == 0 || a == 1)
      return 0;
   if (a == 2 || a == 3 || a == 5 || a == 7 || a == 11 || a == 13 || a == 17 || a == 19 || a == 23 || a == 29)
      return 1;
   if (a%2 == 0 || a%3 == 0 || a%5 == 0 || a%7 == 0 || a%11 == 0 || a%13 == 0 || a%17 == 0 || a%19 == 0 || a%23 == 0 || a%29 == 0)
      return 0;
   bound = sqrt((double)a);
   i1 = 31; i2 = 37; i3 = 41; i4 = 43; i5 = 47; i6 = 49; i7 = 53; i8 = 59;
   while (i8 <= bound && a%i1 && a%i2 && a%i3 && a%i4 && a%i5 && a%i6 && a%i7 && a%i8)
   {
       i1 += 30; i2 += 30; i3 += 30; i4 += 30; i5 += 30; i6 += 30; i7 += 30; i8 += 30;
   }
   if (i8 <= bound ||
      i1 <= bound && a % i1 == 0 ||
      i2 <= bound && a % i2 == 0 ||
      i3 <= bound && a % i3 == 0 ||
      i4 <= bound && a % i4 == 0 ||
      i5 <= bound && a % i5 == 0 ||
      i6 <= bound && a % i6 == 0 ||
      i7 <= bound && a % i7 == 0)
         return 0;
   return 1;
}
 
int main()  {
    std::size_t const N = 30000u;
    std::size_t primeCnt = 0u;
    for(std::size_t i = 0; i < N; ++i)
        if( isPrime(i) )
        {
            std::cout << i << (primeCnt % 5u ? " " : "\n");
            ++primeCnt;
        }
    std::cout << std::endl;
    std::cout << "Всего простых чисел от 0 до "  << N << ": "
                 << primeCnt << " штук." << std::endl;
 
    return EXIT_SUCCESS;
}
Вот держите. Правда все прямолинейно и в лоб, но работает.
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.