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

Нахождение чисел меньше N числа Марсена - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ [C++] Дана квадратная матрица состоящая из натруальных чисел. Надо заменить нулями элементы, расположенные на главной диагонали и выше её http://www.cyberforum.ru/cpp-beginners/thread545811.html
Напишите пожалуйста код. Очень надо ):)
C++ Массив: перемножения двух матриц A,B размерности n*n Разработать программу перемножения двух матриц A,B размерности n*n. Все матрицы размещаются в оперативной памяти динамически с помощью операции new, а значение n вводится по запросу с клавиатуры. В конце работы программы освободить выделенную память. Вывести исходные и результирующую матрицы. http://www.cyberforum.ru/cpp-beginners/thread545799.html
Найти в каждой строке, если там есть отрицательный элемент, среднее арифметическое всех элементов, исключая нулевые и записать эти значения в массив B C++
Задана матрица Z(5,4). Найти в каждой строке, если там есть отрицательный элемент, среднее арифметическое всех элементов, исключая нулевые и записать эти значения в массив B. Вывести исходную матрицу Z и массив B. не получается даже написать рандомное заполнение массива((( #include "stdafx.h" #include <iostream> #include <math.h> #include <stdlib.h> #include <time.h> using namespace...
задача C++
Помогите решить задачу. Визначити площу чотирикутника з вершинами A(x1;y1) B(x2;y2) C(x3;y3) D(x4;y4).
C++ Помогите написать программу http://www.cyberforum.ru/cpp-beginners/thread545774.html
Задать значения целочисленным элементам матриц А = {aij}, B = {bjj}, где i = 0, 1, 2, 3; j = 0, 1, 2,..., 6 и сформировать массивы С и D, состоящие из максимальных элементов столбцов матриц А и В соответственно.
C++ Сортировка контейнера Добрый день! Есть такой контейнер: vector< pair < string, vector < double > > > Как стандартными алгоритмами из <algorithm> провести сортировку всей таблицы по какому-либо столбцу: pair < string, vector < double > > ? Или надо рисовать свой метод? Заранее спасибо. подробнее

Показать сообщение отдельно
UFO94
 Аватар для UFO94
263 / 252 / 13
Регистрация: 04.04.2012
Сообщений: 546
12.04.2012, 11:36     Нахождение чисел меньше N числа Марсена
Для начала, найдем pmax.
2p-1<=N
2p<=N+1
p<=log2(N+1).
pmax=[log2(N+1)]
Теперь задача свелась к нахождению всех простых чисел не больше pmax.
Приведу не очень экономичный по оперативке\вычислению вариант -- очень экономичных не знаю:
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
int n=pmax/2;
int* s=new int[n];
for(int i=0; i<n; i++)
s[i]=0;
s[0]=2;
for(int i=3; i<=pmax; i++)
{
   bool flag=false;
   int j=0;
   while(s[j]!=0)
   {
      if(i%s[j]==0)
      {
         flag=true;//Поделилось нацело -- число не простое
         break;
      }
      j++;
   }
   if(flag==false)
   {
   int j=0;
   while(s[j]!=0)
   j++;
   s[j]=i;
}
int j=0;
while(s[j]!=0)
j++;
n=j;
int* smp=new int[n];
for(int i=0; i<n; i++)
smp[i]=s[i];//Массив простых чисел
delete s;
А далее уже по формуле 2p-1 считаем числа Марсена
 
Текущее время: 04:39. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru