Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
C++ Фоновая коррекция изображения https://www.cyberforum.ru/ cpp-beginners/ thread660353.html
Мне надо написать прогу, которая корректировала бы фон изображения по алгоритму:Для каждого пикселя изображения 3 (результат) : (R3,G3,B3)=(R2-R1,G2-G1,B2-B1)+Del, где Del это значение scrollbar от -255 до 255, R1,G1,B1 - значения пикселей фона, R2,G2,B2 - значение пикселей изображения, которое надо изменить. Вот код: void __fastcall TForm1::ScrollBar1Change(TObject *Sender) { int...
C++ выполните расчет стоимости, использованного интернет-трафика
помогите пожалуйста, написать программу в visual c++: Выполните расчет стоимости, использованного интернет-трафика, если в ночные часы предоставляется скидка в 20%. (стоимость мегабайта и время начала скачивания вводятся пользователем, тариф определяется по времени начала). Добавлено через 1 час 16 минут как я поняла, мне нужно ввести с клавиатуры стоимость мегабайта и время суток. если это...
C++ Элементарный математический код, но почему то всегда равно 0,0000 https://www.cyberforum.ru/ cpp-beginners/ thread660341.html
Элементарный математический код, но почему то всегда равно 0,0000. Тут я еще использую старые функции ввода-вывода, потому что так надо на лабораторную. Вот код: #include<iostream> #include<stdio.h> #include<conio.h> #include<math.h> using namespace std; int main() {
C++ Нахождение суммы ряда с заданной точностью https://www.cyberforum.ru/ cpp-beginners/ thread660307.html
Помогите решить задачу что то не как не могу определить с чего начать.
C++ Количество точек с целочисленными координатами внутри (не включая границ) произвольного многоугольника
Есть вот такая задача. Координаты вершин подаются в порядке обхода по часовой стрелке, многоугольник может быть и невыпуклым. Решение будет основываться на исп. формулы Пика, однако есть 2 проблемы: 1) Как найти площадь такого многоугольника по координатам вершин (прошу растолковать формулу или поделиться ссылкой на источник). 2) Определение кол - ва целочисленных точек на сторонах. Спасибо.
C++ Ошибка 2094 https://www.cyberforum.ru/ cpp-beginners/ thread660305.html
Задали написать класс, вот собственно он: #pragma hdrstop #pragma argsused #include <iostream.h> #include <tchar.h> #include <stdio.h> class Array { int *a; int n;
C++ Определить количество отрицательных элементов, количество элементов в интервале от 1 до 5 https://www.cyberforum.ru/ cpp-beginners/ thread660293.html
Доброго времени суток. Помогите пожалуйста с задачей.Буду очень благодарна. Даны вещественные массивы c, d.Определить количество отрицательных элементов, количество элементов в интервале от 1 до 5. Программу нужно написать в двух вариантах:один с указателями, другой – со ссылками(но мне хотя бы 1 вариант)
C++ Перестроить матрицу
Есть матрица 1, 1, 5, 3, 8 4, 1, 6, 4, 4 0, 5, 1, 7, 9 8, 1, 3, 1, 1 9, 9, 1, 2, 9 в матрице надо подсчитать количество одинаковых элементов в каждой строке в данной матрице будет :
C++ Написать две программы на языке С/С++ для расчета значений переменных y и z по заданным формулам https://www.cyberforum.ru/ cpp-beginners/ thread660289.html
Написать две программы на языке С/С++ для расчета значений переменных y и z по заданным формулам (ссылка ). В первой программе использовать для ввода функцию scanf, для вывода – функцию printf. Во второй программе использовать операторы потокового ввода-вывода cin и cout. Определить разность между значениями y и z. В программе предусмотреть ввод исходных данных. ...
C++ sizeof к объекту или типу? https://www.cyberforum.ru/ cpp-beginners/ thread660275.html
Доброго времени суток! Видел где-то обсуждение, о том к чему надо применять sizeof - к классу или объекту. Мнения были разные, но либо не аргументированные, либо язык их высказываний был для меня непонятен :) Прошу объяснить мне есть ли разница, и если есть, то в чем она заключается?
C++ Решение системы методом Гаусса и разбор ошибок
Добрый вечер! Пару дней назад начал изучать C++ для выполнения данного задания. Задание заключается в следующем: "Решить систему равенств с точностью до 0,0001, используя метод Гаусса." Почитав и посмотрев книжки/видео уроки, ринулся писать решения. На бумаге всё просто, а вот с программой нет. Использую Microsoft Visual Studio 2010 для выполнения поставленной задачи. Visual Studio выдаёт...
C++ задача найти преимущества использования контенеров vec и set Пока не нашел особо больших кординальных преимуществ set'a . В учебнике предлагают решить такой пример: Вводим слово-исключение, если такого в контенере нет -> забиваем в конт. Потом вводим текст и удаляем слова исключения, если найдутся... Не знаю, я только одно пока отличие нашел, это find, у векторя ее наверно нет (или я про нее не знаю просто), поэтому приходится перебирать элементы по... https://www.cyberforum.ru/ cpp-beginners/ thread660256.html
Эксперт С++
4267 / 2241 / 203
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
0

Быстрая проверка натурального числа на простоту - C++ - Ответ 3501183

29.09.2012, 21:35. Показов 141509. Ответов 121
Метки (Все метки)

Author24 — интернет-сервис помощи студентам
Часто возникает задача проверки натурального числа на простоту. При этом имеются вероятностные и детерминированные методы проверки. Здесь рассматриваются только детерминированные алгоритмы, дающие 100% ответ на вопрос о простоте.

Хорошо известно такое утверждение: если натуральное число n>1 не делится ни на одно простое число, не превосходящее https://www.cyberforum.ru/cgi-bin/latex.cgi?\sqrt{n}, то оно простое. В связи с этим получается самый простой способ проверки на простоту алгоритм

C++
1
2
3
4
5
6
7
8
9
10
11
int Prime(unsigned long a)
{
   unsigned long i;
   if (a == 2)
      return 1;
   if (a == 0 || a == 1 || a % 2 == 0)
      return 0;
   for(i = 3; i*i <= a && a % i; i += 2)
      ;
   return i*i > a;
}
В данном алгоритме из множества https://www.cyberforum.ru/cgi-bin/latex.cgi?\{2,3,...,\sqrt{n}\} отброшено 50% четных чисел, так как если число a не делится на 2, то нет смыла делить его на 4, 6 и т.д. Данный метод можно усовершенствовать и отбросить из множества https://www.cyberforum.ru/cgi-bin/latex.cgi?\{2,3,...,\sqrt{n}\} больше чисел. Для этого выбирается некоторое число m, равное произведению простых чисел без степеней и рассматриваются только те элементы множества https://www.cyberforum.ru/cgi-bin/latex.cgi?\{2,3,...,\sqrt{n}\}, которые взаимно просты с m. Например, если m = 6 = 2*3, то из этого множества отбрасывается 66% элементов (ненужных проверок). В этом случае алгоритм будет быстрее предыдущего при больших n

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
int Prime(unsigned long a)
{
   unsigned long i, j, bound;
   if (a == 0 || a == 1)
      return 0;
   if (a == 2 || a == 3 || a == 5)
      return 1;
   if (a%2 == 0 || a%3 == 0 || a%5 == 0)
      return 0;
   bound = sqrt((double)a);
   i = 7; j = 11;
   while (j <= bound && a%i && a%j)
   {
       i += 6; j += 6;
   }
   if (j <= bound || i <= bound && a%i == 0)
      return 0;
   return 1;
}
Если m = 30 = 2*3*5, то такой алгоритм будет еще быстрее и отбрасывает уже 74% лишних элементов

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
int Prime(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;
}
Вот такие интересные наработки получились. У кого есть варианты, работающие быстрее, добавляйте.

Вернуться к обсуждению:
Быстрая проверка натурального числа на простоту C++
33
Заказать работу у эксперта
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.09.2012, 21:35
Готовые ответы и решения:

Проверка на простоту числа
как мне сделать так, чтобы узнать простое является число или составное, не через bool, а как-нибудь...

Проверка числа на простоту
Помогите написать программу которая проверяет простое число или нет.

Проверка числа на простоту
Дано натуральное число n&gt;1. Проверьте, является ли оно простым. Программа должна вывести слово YES,...

Проверка числа на простоту
Хочу проверить число на простоту, но не вижу ошибку в коде. Можете подсказать, что не так? ...

121
29.09.2012, 21:35
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.09.2012, 21:35
Помогаю со студенческими работами здесь

Проверка числа на простоту
Написать программу, которая запрашивает массив натуральных чисел (ввод с клавиатуры), а затем...

Проверка числа на простоту
Помогите решить 2 задачки, пожалуйста, 1. Написать программу для проверки натурального числа N...

Проверка числа на простоту
я реализовал вот так, но алгоритм очень долгий, мне надо проверять очень большое количество чисел...

Проверка числа на простоту
Дано натуральное число N, проверить, простое оно или нет. Увеличить его значение на натуральное...

Проверка числа на простоту
Почему, если необ. проверить, является ли число простым(напр. ч-ло n),можно просматривать делители...

Проверка числа на простоту (нужны комментарии)
объясните пожалуйста, как в данной функции выполняется проверка числа на простоту. как можно...

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