Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
0 / 0 / 0
Регистрация: 12.06.2017
Сообщений: 32
1

Сформировать массив, поместив в него значения индексов тех элементов первого массива, которые являются простыми числами

10.09.2017, 14:47. Просмотров 1305. Ответов 4
Метки нет (Все метки)

Доброго времени суток. Мне дали задание:"Дан целочисленный массив A[N]. Сформировать массив B[M], поместив в него значения индексов тех элементов массива A, которые являются простыми числами." Я написал под это задание программу:
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
#include "stdafx.h" 
#include<math.h> 
#include <conio.h> 
#include <iostream> 
#include <cstdlib> 
using namespace std;
int main()
{
    setlocale(LC_ALL, "Russian");
    int A[100];
    int B[100];
    int i, j, N, M = 0;
    cout << "введите размер массива N:";
    cin >> N;
    for (i = 0; i < N; i++)
    {
        cout << "введите элемент массива A[" << i << "]:";
        cin >> A[i];
    }
    for (i = 0; i < N; i++)
    {
        for (j = 2; j < A[i]; j++)
        {
            if (A[i] % j == 0)
            {
                A[i] = 1;
            }
        }
 
    }
    for (i = 0; i < N; i++)
    {
        if (A[i] != 1)
        {
            B[M] = i;
            cout << "B[" << M << "]=" << B[M] << endl;
            M++;
        }
    }
    system("pause");
}
но преподаватель сказал, что у меня в массиве A не известно, какое количество простых чисел, я не совсем понял, что мне конкретно в программе нужно исправить. Скажи пожалуйста, что в ней не так ?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.09.2017, 14:47
Ответы с готовыми решениями:

Сформировать массив В, из элементов массива А, которые являются простыми числами
Здраствуйте. Помогите подправить мой код. Условие задачи: Дан одномерный целочисленный массив А из...

Найти количество тех элементов массива, которые не являются простыми числами
Найти количество тех элементов массива, которые не являются простыми числами, а также найти...

Вывести номера тех элементов массива,которые являются простыми числами.
Задача 1 Дан массив целых чисел X(n).Вывести номера тех элементов массива,которые являются...

Найти сумму тех элементов массива, которые являются простыми числами
Дан массив натуральных чисел А(N), значения элементов которого лежат в диапазоне . Найти сумму тех...

4
22 / 23 / 20
Регистрация: 03.07.2015
Сообщений: 66
10.09.2017, 15:02 2
Ну может быть что размер массива B должен быть равен количеству простых чисел? а не размеру массива A?
0
575 / 390 / 199
Регистрация: 06.09.2013
Сообщений: 1,140
10.09.2017, 15:14 3
Трудно сказать, что ему надо, но мне не нравится, что вы A[i] затираете и проверяете слишком много делителей, по крайней мере ваш код немного причесать надо:
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
 int A[100];
    int B[100];
    int N, M = 0;
    cout << "введите размер массива N:";
    cin >> N;
    for (int i = 0; i < N; i++)
    {
        cout << "введите элемент массива A[" << i << "]:";
        cin >> A[i];
    }
    for (int i = 0; i < N; i++)
    {
        bool is_prime = true;
        for (int j = floor(sqrt(A[i])) + 1; j > 1; j--)
        {
            if (A[i] % j == 0)
            {
                is_prime = false;
                break;
            }
        }
        if(is_prime) B[M++] = i;
    }
    for (int i = 0; i < M; i++)
    {
        cout << "B[" << i << "]=" << B[i] << endl;
    }
0
0 / 0 / 0
Регистрация: 12.06.2017
Сообщений: 32
10.09.2017, 15:51  [ТС] 4
Как бы объяснить, у нас есть массив A, состоящий из чисел, необходимо сформировать массив B[M], поместив в него значения индексов тех элементов массива A, которые являются простыми числами. Проблема в том, что, как мне сказали, что по моей программе все числа >1, могут попасть в ответ. Поэтому изначально надо отобрать все простые числа, которые могут попасться. Как то так. Да, если честно, как туговато доходит до меня задание.
0
0 / 0 / 0
Регистрация: 12.06.2017
Сообщений: 32
01.10.2017, 14:34  [ТС] 5
не хотел создавать тему по-новой для нового вопроса. Вопрос поставлю так: как можно переделать эту программу:
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
#include "stdafx.h" 
#include<math.h> 
#include <conio.h> 
#include <iostream> 
#include <cstdlib> 
using namespace std;
int main()
{
    setlocale(LC_ALL, "Russian");
    int A[100];
    int B[100];
    int i, j, N, M = 0;
    cout << "введите размер массива N:";
    cin >> N;
    for (i = 0; i < N; i++)
    {
        cout << "введите элемент массива A[" << i << "]:";
        cin >> A[i];
    }
    for (i = 0; i < N; i++)
    {
        for (j = 2; j < A[i]; j++)
        {
            if (A[i] % j == 0)
            {
                A[i] = 1;
            }
        }
 
    }
    for (i = 0; i < N; i++)
    {
        if (A[i] != 1)
        {
            B[M] = i;
            cout << "B[" << M << "]=" << B[M] << endl;
            M++;
        }
    }
    system("pause");
}
сама программка работает правильно, но преподавателю не нравится ее вид, как бы я не пытался ее объяснить Вариант от woldemas тоже не подходит.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.10.2017, 14:34

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Вывести на экран индексы тех элементов одномерного массива, которые являются простыми числами
Составьте программу вывода на экран индексов элементов одномерного массива b(n) значение которых...

В исходном массиве X(n) вывести номера тех элементов массива, которые являются простыми числами.
Задание № 1. В исходном массиве X(n) вывести номера тех элементов массива, которые являются...

Сформировать массив B так, чтобы в него вошли элементы массива А, индексы которых являются простыми числами
В массиве А(55) лежат целые числа. Сформировать массив B таким образом, чтобы в него вошли те...

Вычислить индексы и минимальное значение только тех сумм элементов массива, которые являются простыми числами.
Вычислить индексы и минимальное значение только тех сумм элементов массива (a1 + a2, a2 + a3, ...,...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

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