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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 16, средняя оценка - 5.00
IlyaCool
1 / 1 / 0
Регистрация: 04.12.2011
Сообщений: 187
#1

Сформировать массив простых чисел не больших заданного натурального числа N - C++

17.03.2012, 02:41. Просмотров 2499. Ответов 7
Метки нет (Все метки)

Сформировать массив простых чисел не больших заданного натурального числа N.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.03.2012, 02:41     Сформировать массив простых чисел не больших заданного натурального числа N
Посмотрите здесь:
C++ Сформировать массив простых чисел не больших заданного натурального числа N.
Подсчитать количество простых чисел в последовательности, больших заданного числа М C++
C++ Подсчитать количество простых чисел в последовательности, больших заданного числа М
Среди простых чисел , не превосходящих заданного натурального числа N .Найти такие, в десятичном представление которых больше всего нулей C++
Из цифр заданного натурального числа рекурсивно сформировать множество C++
C++ Сформировать массив из элементов больших заданного значения
C++ Найти в массиве количество простых чисел,больших суммы цифр первого числа
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
HackSign
33 / 33 / 13
Регистрация: 23.11.2006
Сообщений: 113
17.03.2012, 11:37     Сформировать массив простых чисел не больших заданного натурального числа N #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
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
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <math.h>
#include <iostream.h> 
 
int main()
{
  int i, j, k, s, N; 
  int mass[20]; 
  
  cout<<"Vvedite razmernost massiva ot 8 do 20"<<" "; 
  cin>>i; 
  cout<<"\n"; 
  if((i<8)||(i>20)) 
  { 
   cout<<"Error! razmernost zadana neverno!"<<"\n"; 
   cout<<"Press any key to exit"; 
   getch(); 
   exit(0);
   }
  cout<<"Vvedite chislo N"<<" "; 
  cin>>N; 
  cout<<"\n";
  
  for(j=0; j<=i; j++) 
  { 
   mass[j]=rand() % N; // генерация случайных чисел, N  здесь ограничивает генерацию
                        // то есть число большее чем N не сгенерируется
   } 
  for(j=0; j<=i; j++) 
  {
   cout<<"mass["<<j<<"]="<<" "<<mass[j]; 
   cout<<"\n";
   } 
cout<<"Press any key to exit"; 
getch(); 
return 0; 
}
fasked
Эксперт С++
4933 / 2513 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
17.03.2012, 11:52     Сформировать массив простых чисел не больших заданного натурального числа N #3
Сообщение было отмечено автором темы, экспертом или модератором как ответ
HackSign, автору надо простые числа, а не случайные.
IlyaCool, я думаю, решето Эратосфена Вам подошло бы.

Вот здесь обсуждается подобная тема: http://www.cyberforum.ru/cpp-beginne...ead343023.html

А вот один из примеров генерации простых чисел до заданного N.
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
45
46
47
48
49
50
51
52
53
#include <cmath>
#include <vector>
#include <iostream>
 
int main() 
{
        unsigned limit = 1000;
                
        std::vector<bool> is_primes(limit + 1, false);
        unsigned sqrt_of_limit = static_cast<unsigned>(sqrt(static_cast<double>(limit)));
 
        for (unsigned i = 1; i <= sqrt_of_limit; ++i) 
        {
                for (unsigned j = 1; j <= sqrt_of_limit; ++j) 
                {
                        unsigned x = i * i;
                        unsigned y = j * j;
                        unsigned n = 4*x + y;
 
                        if (n <= limit && (n % 12 == 1 || n % 12 == 5))
                                is_primes[n].flip();
 
                        n -= x;
                        if (n <= limit && n % 12 == 7)
                                is_primes[n].flip();
 
                        n -= 2*y;
                        if (x > y && n <= limit && n % 12 == 11)
                                is_primes[n].flip();
                }
        }
 
        for (unsigned i = 5; i <= sqrt_of_limit; i += 2) 
        {
                if (is_primes[i]) 
                {
                        unsigned x = i * i;
                        for (unsigned j = x; j <= limit; j += x)
                                is_primes[j] = false;
                }
        }
 
        is_primes[2] = is_primes[3] = true;
 
 
        for (unsigned i = 0; i < limit; ++i) 
        {
                if (is_primes[i])
                        std::cout << i << std::endl;
        }
 
        return 0;
}
IlyaCool
1 / 1 / 0
Регистрация: 04.12.2011
Сообщений: 187
20.03.2012, 01:12  [ТС]     Сформировать массив простых чисел не больших заданного натурального числа N #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream.h>
#include <iomanip.h>
#include <conio.h>
#include <stdlib.h>
#define n 1
void main()
{ int i,A[n];
clrscr();
randomize();
 for(i=0;i<n;i++)
  {A[i]=rand()%n;
  cout<<A[i];}
  }
запускаю появляется черный экран и гаснет.задача та же самая
AncinetHero
49 / 49 / 3
Регистрация: 22.05.2011
Сообщений: 326
20.03.2012, 01:21     Сформировать массив простых чисел не больших заданного натурального числа N #5
Паузу поставьте
IlyaCool
1 / 1 / 0
Регистрация: 04.12.2011
Сообщений: 187
20.03.2012, 01:26  [ТС]     Сформировать массив простых чисел не больших заданного натурального числа N #6
Цитата Сообщение от AncinetHero Посмотреть сообщение
Паузу поставьте
это как ??
Рустам777
3 / 3 / 0
Регистрация: 13.04.2011
Сообщений: 32
20.03.2012, 02:02     Сформировать массив простых чисел не больших заданного натурального числа N #7
Цитата Сообщение от IlyaCool Посмотреть сообщение
это как ??
C++
1
getch();
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.03.2012, 15:31     Сформировать массив простых чисел не больших заданного натурального числа N
Еще ссылки по теме:
Сформировать одномерный массив из 15 простых чисел C++
C++ Сформировать массив простых чисел, не превосходящих заданное
Сформировать массив из всех делителей введенного с клавиатуры натурального числа C++
Для заданного натурального числа n и действительных чисел x0 и A вычислить Xn, по итерационной формуле: C++
Вывести все представления заданного натурального числа суммой натуральных чисел C++

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

Или воспользуйтесь поиском по форуму:
IlyaCool
1 / 1 / 0
Регистрация: 04.12.2011
Сообщений: 187
21.03.2012, 15:31  [ТС]     Сформировать массив простых чисел не больших заданного натурального числа N #8
C++
1
2
3
4
5
6
7
8
#include <iostream.h>
#include <conio.h>
void main()
{ int i,A[10];
clrscr();
for(i=0;i<10;i++)
{cout<<"Vvedite chisla dlya massiva A[i]";cin>>A[i];}
}
надо чтобы при попытке ввести в массив число большее чем 50 писалось что это число слишком большое.

Добавлено через 12 часов 48 минут
Цитата Сообщение от IlyaCool Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
#include <iostream.h>
#include <conio.h>
void main()
{ int i,A[10];
clrscr();
for(i=0;i<10;i++)
{cout<<"Vvedite chisla dlya massiva A[i]";cin>>A[i];}
}
надо чтобы при попытке ввести в массив число большее чем 50 писалось что это число слишком большое.
что никто не пишет?
Yandex
Объявления
21.03.2012, 15:31     Сформировать массив простых чисел не больших заданного натурального числа N
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru