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

Вывести все элементы массива, являющиеся простыми числами - C++

Восстановить пароль Регистрация
 
mr penis
0 / 0 / 0
Регистрация: 21.10.2015
Сообщений: 23
24.03.2016, 20:32     Вывести все элементы массива, являющиеся простыми числами #1
Добрый вечер,форумчане. Не могу разобраться с учебной задачей.
Задача: Дан одномерный массив. Разработать функцию, выводящую на
экран все элементы массива, являющиеся простыми числами. Определить
число таких элементов.

Понял как проходить по массиву, вроде понял логику но количество элементов считает неправильно. Где ошибся? Подправьте логику. Спасибо .
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
nt main()
{
    int j,p,k,i,a[10]={0,};
    int b[10]={0,};
    cout <<"vvedite massiv"<<endl;
    for(i=0;i<10;i++)
    {
 
        cout<<"vvedite"<<i+1<<"element";
        cin >> a[i];
    }
        for(i=0;i<10;i++)
        cout << a[i]<<endl;
 
        p=0;
        for(i=0;i<10;i++){
            for(k=2;k<a[i];k++){
            if (a[i]%k==0)
 
                b[i]=a[i];
 
                p=p+1;
                break;}
 
        }
                cout<<p<<endl;
 
            for(i=0;i<10;i++){
                cout<<b[i];
 
            }
   // return 0;
}
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.03.2016, 20:32     Вывести все элементы массива, являющиеся простыми числами
Посмотрите здесь:

C++ Удалить из массива целых чисел все элементы, являющиеся совершенными числами.
C++ Удалить из массива целых чисел все элементы, являющиеся совершенными числами.
C++ Массив: Удалить из массива целых чисел все двузначные элементы,являющиеся простыми числами
C++ Удалить из массива целых чисел все элементы, являющиеся простыми числами
Удалить из массива целых чисел все элементы, являющиеся простыми числами C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Черный мечник
48 / 49 / 17
Регистрация: 29.12.2012
Сообщений: 417
24.03.2016, 22:44     Вывести все элементы массива, являющиеся простыми числами #2
А где тут функция?(кроме мейна)
судя по заданию тебе надо еше свою функцию создавать
основная ошибка из-за непонятного почерка
C++
1
2
3
4
5
6
if (a[i]%k==0)
              b[i]=a[i];//только эта строчка относится к ифу
 
                p=p+1;//эта строчка не относится к ифу и она всегда +1 добовляет
                break;//это выход из внутренего цикла, и он срабатывает при первой же итерации ,из-за 
                 // ваша задумка делить на все числа меньше текушего неработает..
Добавлено через 2 минуты
и надеюсь вы читали википедию: просто́е число́ — натуральное (целое положительное) число, имеющее ровно два различных натуральных делителя[1] — единицу и самого себя.
C++
1
if((a[i]%a[i]==0)&&((a[i]/1)==a[i]))
mr penis
0 / 0 / 0
Регистрация: 21.10.2015
Сообщений: 23
25.03.2016, 10:09  [ТС]     Вывести все элементы массива, являющиеся простыми числами #3
if((a[i]%a[i]==0)&&((a[i]/1)==a[i])) я правильно понял это условие простого числа, но как же проверить делится ли число на другие числа??
skipaq
67 / 67 / 30
Регистрация: 24.01.2013
Сообщений: 192
25.03.2016, 11:16     Вывести все элементы массива, являющиеся простыми числами #4
Черный мечник, ваш if не несёт в себе никакого смысла, число деленное на себя всегда даст 0 в остатке. Чтоб проверить надо что-то типа вложенного цикла
C++
1
for  (int j=1; j <=a[i]; j++)
, и внутри уже вложить
C++
1
if (a[i]%j==0)
Прошу прощения, с телефона..нет возможности написать полностью. Но суть подал
mr penis
0 / 0 / 0
Регистрация: 21.10.2015
Сообщений: 23
25.03.2016, 11:35  [ТС]     Вывести все элементы массива, являющиеся простыми числами #5
но так ведь у меня такой же цикл. Не понял Вашу мысль. Мой цикл от 2 до числа меньше A[I] .
skipaq
67 / 67 / 30
Регистрация: 24.01.2013
Сообщений: 192
25.03.2016, 11:47     Вывести все элементы массива, являющиеся простыми числами #6
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Точняк. А вообще гляньте тут, Вложенные циклы: вывести n первых простых чисел
Когда-то писал...
В вашем случае будет что-то типа
C++
1
2
3
4
5
6
for (int k= 1; k <= a[i];k++){
        for (int j = 2; j <= k/2; j++){
            if (k%j == 0) break;
        }
        if (j > k/2) cout << i << " ";
    }
mr penis
0 / 0 / 0
Регистрация: 21.10.2015
Сообщений: 23
25.03.2016, 14:58  [ТС]     Вывести все элементы массива, являющиеся простыми числами #7
Спасибо вроде разобрался вот только количество простых иногда считает неправильно
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
int main()
{
    int kol,p,k,i,a[10]={0,};
    int b[10]={0,};
    cout <<"vvedite massiv"<<endl;
    for(i=0;i<10;i++)
    {
 
        cout<<"vvedite"<<i+1<<"element";
        cin >> a[i];
    }
        kol=0;
        for(i=0;i<10;i++)
        cout << a[i]<<endl;
        for(i=0;i<10;i++)
        {
            p=0;
            for(k=2;k<a[i];k++)
            { if(a[i]%k==0)
            p=p+1;
            }
            if(p==0){
                cout<<a[i];
               kol=kol+1;
               }
 
            }
            cout<<"kol-vo prostyx 4isel"<<kol;
 
   // return 0;
}

а да вопрос как правильно поступить с отрицательными элементами?
ZaMaZaN4iK
Мой лучший друг-отладчик!
 Аватар для ZaMaZaN4iK
163 / 163 / 9
Регистрация: 24.06.2012
Сообщений: 662
Записей в блоге: 5
Завершенные тесты: 1
25.03.2016, 16:18     Вывести все элементы массива, являющиеся простыми числами #8
skipaq, при поиске простых чисел нужно бежать до корня числа. К тому же есть тесты на простоту(Миллера-Рабина, Полларда, BPSW и многие другие. Но они вероятностные все). Можно прикрутить решёта(Эратосфена и Аткина)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.03.2016, 16:46     Вывести все элементы массива, являющиеся простыми числами
Еще ссылки по теме:

Удалить из массива целых чисел все элементы, являющиеся простыми числами C++
Удалить из массива целых чисел все элементы, являющиеся простыми числами C++
C++ Продублировать элементы массива, являющиеся числами Фибоначчи

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

Или воспользуйтесь поиском по форуму:
skipaq
67 / 67 / 30
Регистрация: 24.01.2013
Сообщений: 192
25.03.2016, 16:46     Вывести все элементы массива, являющиеся простыми числами #9
ZaMaZaN4iK, спасибо) хотелось просто пример привести... Натолкнуть) а вообще наиболее правильный вариант такой , вернее, один из
Yandex
Объявления
25.03.2016, 16:46     Вывести все элементы массива, являющиеся простыми числами
Ответ Создать тему
Опции темы

Текущее время: 21:38. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru