Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
mr penis
0 / 0 / 0
Регистрация: 21.10.2015
Сообщений: 23
1

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

24.03.2016, 20:32. Просмотров 1109. Ответов 8
Метки нет (Все метки)

Добрый вечер,форумчане. Не могу разобраться с учебной задачей.
Задача: Дан одномерный массив. Разработать функцию, выводящую на
экран все элементы массива, являющиеся простыми числами. Определить
число таких элементов.

Понял как проходить по массиву, вроде понял логику но количество элементов считает неправильно. Где ошибся? Подправьте логику. Спасибо .
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;
}
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.03.2016, 20:32
Ответы с готовыми решениями:

Удалить из массива целых чисел все элементы, являющиеся простыми числами
Помогите пожалуйста написать программу по условию : Удалить из массива целых...

Удалить из массива целых чисел все элементы, являющиеся простыми числами
Помогите пожалуйста написать программу на С++ с условием : Удалить из массива...

Удалить из массива целых чисел все элементы, являющиеся простыми числами
Проверьте пожалуйста правильность написания программы и её работы по условию : ...

Удалить из массива целых чисел все элементы, являющиеся простыми числами
Люди, для кого не составит большого труда, напишите пожалуйста программу по...

Массив: Удалить из массива целых чисел все двузначные элементы,являющиеся простыми числами
Удалить из массива целых чисел все двузначные элементы,являющиеся простыми...

8
Черный мечник
48 / 49 / 34
Регистрация: 29.12.2012
Сообщений: 445
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]))
0
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])) я правильно понял это условие простого числа, но как же проверить делится ли число на другие числа??
0
skipaq
69 / 69 / 52
Регистрация: 24.01.2013
Сообщений: 198
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)
Прошу прощения, с телефона..нет возможности написать полностью. Но суть подал
0
mr penis
0 / 0 / 0
Регистрация: 21.10.2015
Сообщений: 23
25.03.2016, 11:35  [ТС] 5
но так ведь у меня такой же цикл. Не понял Вашу мысль. Мой цикл от 2 до числа меньше A[I] .
0
skipaq
69 / 69 / 52
Регистрация: 24.01.2013
Сообщений: 198
25.03.2016, 11:47 6
Лучший ответ Сообщение было отмечено mr penis как решение

Решение

Точняк. А вообще гляньте тут, Вложенные циклы: вывести 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 << " ";
    }
1
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;
}

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

Удалить из массива целых чисел все элементы, являющиеся совершенными числами.
Удалить из массива целых чисел все элементы, являющиеся совершенными числа ми....

Удалить из массива целых чисел все элементы, являющиеся совершенными числами.
нужно сделать сдвиг элементов массива а не затирание этих совершенных чисел...

Продублировать элементы массива, являющиеся числами Фибоначчи
Задание : Продублировать элементы, являющиеся числами Фибоначчи;


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

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

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