0 / 0 / 0
Регистрация: 21.10.2015
Сообщений: 23
1

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

24.03.2016, 20:32. Показов 2876. Ответов 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)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.03.2016, 20:32
Ответы с готовыми решениями:

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

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

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

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

8
55 / 56 / 34
Регистрация: 29.12.2012
Сообщений: 478
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
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
70 / 70 / 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
0 / 0 / 0
Регистрация: 21.10.2015
Сообщений: 23
25.03.2016, 11:35  [ТС] 5
но так ведь у меня такой же цикл. Не понял Вашу мысль. Мой цикл от 2 до числа меньше A[I] .
0
70 / 70 / 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
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
Мой лучший друг-отладчик!
165 / 165 / 30
Регистрация: 24.06.2012
Сообщений: 662
Записей в блоге: 5
25.03.2016, 16:18 8
skipaq, при поиске простых чисел нужно бежать до корня числа. К тому же есть тесты на простоту(Миллера-Рабина, Полларда, BPSW и многие другие. Но они вероятностные все). Можно прикрутить решёта(Эратосфена и Аткина)
0
70 / 70 / 52
Регистрация: 24.01.2013
Сообщений: 198
25.03.2016, 16:46 9
ZaMaZaN4iK, спасибо) хотелось просто пример привести... Натолкнуть) а вообще наиболее правильный вариант такой , вернее, один из
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.03.2016, 16:46

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

Найти все элементы матрицы являющиеся простыми числами и обнулить их
Случайным образом задается двумерный массив замера N*M. Нацти все элементы, являющиеся простыми...

Вывести в файл все номера счастливых билетиков, являющиеся простыми числами
Помогите пожалуйста, напишите программу. Счастливый билетик(6 значное число, где сумма первых трех...

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


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

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

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