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

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

Войти
Регистрация
Восстановить пароль
 
Killspamers
0 / 0 / 0
Регистрация: 17.12.2011
Сообщений: 26
#1

Простые числа - C++

29.12.2011, 13:12. Просмотров 280. Ответов 6
Метки нет (Все метки)

Народ, выручайте снова! Почему когда в матрице появляется 5 или 7 их прога записывает много раз?
Задание вот такое
Дана матpица A[N,М]. Определить количество элементов матрицы, являющихся простыми числами.
код работает если
C++
1
mas[i][j] = rand()%5;
если больше то выдаёт хрень=( Через 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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
//
#include <stdafx.h>
#include <stdlib.h>
#include <conio.h>
#include <clocale>
#include <ctime>
 
int main()
{
 setlocale(LC_ALL,"russian");
 int n, m, i;
 int **mas = NULL;
 srand(time(NULL));
 printf ("Введите размерность матрицы(m,n): \n");
 printf ("\n--------------------------\n");
 scanf("%d%d", &m, &n);
 mas = new int * [n];
 printf ("\n--------------------------\n");
 for (int i=0; i < n; i++)
      { 
      mas[i] = new int [m];
      for ( int j = 0; j < m; j++)
          {
           mas[i][j] = rand()%5;
           printf ("%d ", mas[i][j]);
          }
      printf ("\n");
      }
      printf("\n--------------------------\n");
      printf("\nпростые числа: ");
      int c=0;
      for (i=0; i<n; i++)
      for (int j=0; j<m; j++)
      {
         if (mas[i][j] == 0) continue;
         if (mas[i][j] == 1) continue;
         bool simple = false;
         for (int k = 2;k<mas[i][j]; k++)
             {
             if (mas[i][j]%k == 0 )
                {
                 simple = true;
                 break;
                }
             if(!false)
                { 
                 c++;
                 printf("%d ",mas[i][j]);
                }
             }
      }
      for (int i=0; i < n; i++)
      {
       delete [] mas[i];
      } 
   delete [] mas;
   printf("\nколичество простых чисел: %d\n",c);
   system("pause");
   return EXIT_SUCCESS;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.12.2011, 13:12
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Простые числа (C++):

Найти все трехзначные простые числа. Определить функцию позволяющую распознавать простые числа - C++
Найти все трехзначные простые числа. Определить функцию позволяющую распознавать простые числа. Простые числа это когда они делятся только...

Задача про простые числа. Выпишите все простые числа, находящиеся в интервале между а и б - C++
#include &lt;stdio.h&gt; #include &lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;math.h&gt; using std::cout; using std::cin; using...

Даны натуральные числа p и q. Получить все делители числа q, взаимно простые к p. - C++
Даны натуральные числа p и q. Получить все делители числа q , взаимно простые к p.

Найти числа-близнецы: простые числа разность между которыми равна 2 - C++
Дано натуральное число n. Среди чисел n, n + 1, …, 2n найти все числа-близнецы: простые числа, разность между которыми равна 2.

Даны целые числа р и q. Получить все делители числа q, взаимно простые с р - C++
Получить все делители числа q, взаимно простые с р.

Даны натуральные числа p и q. Получить все делители числа q, взаимно простые к p - C++
Даны натуральные числа p и q. Получить все делители числа q , взаимно простые к p. помогите сделать на с++

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
valeriikozlov
Эксперт C++
4670 / 2496 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
29.12.2011, 13:24 #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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
#include "stdafx.h"
#include <stdlib.h>
#include <conio.h>
#include <clocale>
#include <ctime>
 
int main()
{
 setlocale(LC_ALL,"russian");
 int n, m, i;
 int **mas = NULL;
 srand(time(NULL));
 printf ("Ââåäèòå Г°Г*çìåðГ*îñòü Г¬Г*òðèöû(m,n): \n");
 printf ("\n--------------------------\n");
 scanf("%d%d", &m, &n);
 mas = new int * [n];
 printf ("\n--------------------------\n");
 for ( i=0; i < n; i++)
      { 
      mas[i] = new int [m];
      for ( int j = 0; j < m; j++)
          {
           mas[i][j] = rand()%9;
           printf ("%d ", mas[i][j]);
          }
      printf ("\n");
      }
      printf("\n--------------------------\n");
      printf("\nïðîñòûå Г·ГЁГ±Г«Г*: ");
      int c=0;
      for (i=0; i<n; i++)
      for (int j=0; j<m; j++)
      {
         if (mas[i][j] == 0) continue;
                 if (mas[i][j] == 1) continue;
         bool simple = false;
                 for (int k = 2;k<mas[i][j]; k++)
               if (mas[i][j]%k == 0 )
                            {
                                 simple = true;
                                 break;
                }
             if(!simple)
             {
                   c++;
                             printf("%d ",mas[i][j]);
                }
             
          }
      for ( i=0; i < n; i++)
      {
       delete [] mas[i];
      } 
   delete [] mas;
   printf("\nêîëè÷åñòâî ïðîñòûõ Г·ГЁГ±ГҐГ«: %d\n",c);
   system("pause");
   return EXIT_SUCCESS;
}
Killspamers
0 / 0 / 0
Регистрация: 17.12.2011
Сообщений: 26
29.12.2011, 13:33  [ТС] #3
Так а что изменилось?
valeriikozlov
Эксперт C++
4670 / 2496 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
29.12.2011, 13:38 #4
Цитата Сообщение от Killspamers Посмотреть сообщение
if(!false)
стока 46
и немного скобочки в цикле (строка 33, 34):
Цитата Сообщение от Killspamers Посмотреть сообщение
for (i=0; i<n; i++)
for (int j=0; j<m; j++)
Killspamers
0 / 0 / 0
Регистрация: 17.12.2011
Сообщений: 26
29.12.2011, 13:45  [ТС] #5
Все равно выводит кучу пятёрок а скажем число 3 норм выводится

Добавлено через 2 минуты
то есть при массиве 4 на 4 количеснтво простых 20 0_о из которых гора пятёрок
valeriikozlov
Эксперт C++
4670 / 2496 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
29.12.2011, 13:46 #6
Цитата Сообщение от Killspamers Посмотреть сообщение
Все равно выводит кучу пятёрок а скажем число 3 норм выводится
ничего подобного. Сделайте перекомпиляцию (или если не умете создайте новый проект). Код работает правильно.
Killspamers
0 / 0 / 0
Регистрация: 17.12.2011
Сообщений: 26
29.12.2011, 13:53  [ТС] #7
Да, это я туплю вроде работает, спасибо!
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.12.2011, 13:53
Привет! Вот еще темы с ответами:

Даны натуральные числа a,b(a<= Ь). Получить все простые числа р, удовлетворяющие неравенствам a<= р<= b. - C++
Даны натуральные числа a,b(a&lt;= Ь). Получить все простые числа р, удовлетворяющие неравенствам a&lt;= р&lt;= b. Решите на С++. Буду очень...

Даны целые числа р и q. Получить все делители числа q, взаимно простые с р. - C++
Даны целые числа р и q. Получить все делители числа q, взаимно простые с р. Решите на С++. Заранее спасибо!

Найти простые числа с суммой цифр меньше заданного числа - C++
нужно написать прогу, можно использовать только циклы. Если можно, с объяснениями. Условие: Найти n первых простых чисел, сумма цифр у...

Найти все натуральные числа, меньшие заданного числа и взаимно простые с ним - C++
Дано натуральное число n. Необходимо получить все натуральные числа, меньшие nn и взаимно простые с ним (два натуральных числа называются...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
29.12.2011, 13:53
Ответ Создать тему
Опции темы

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