Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
sword7i
3 / 3 / 0
Регистрация: 25.09.2012
Сообщений: 92
1

Проверить содержит ли массив простые числа

20.11.2012, 01:33. Просмотров 782. Ответов 6
Метки нет (Все метки)

Составить функцию, которая бы возвращала 1, если среди элементов массива есть хотя бы одно простое число, и возвращала 0, если массив не содержит простых чисел.
Написал програмку, но она возвращает 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
#include <iostream>
#include <math.h>
using namespace std;
bool fun ()
{
    const int n=4;
    int mas[n]={7, 2, 19, 23};
    for (int j=0;j<n;j++)
    {
        for (int i=2;i<=sqrt(mas[j]);i++)
        {
            if (mas[j]%i==0)
            {
            return false;
            }
        }
    }
    return true;
}
int main ()
{
cout<<fun()<<endl;
system("pause");
}
Помогите переделать под мое условие, пожалуйста!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.11.2012, 01:33
Ответы с готовыми решениями:

Используя контейнер array проверить, что он содержит все числа от 1 до N
Дан целочисленный массив размера N. Если он является перестановкой, то есть...

Одномерный массив. Вывести на экран все числа, индексы которых есть простые числа.
Нужно вывести на экран все числа заданной последовательности, индексы которых...

Массив A содержит только два одинаковых числа. Найти эти числа и указать их индексы ошибка
Массив А содержит только два одинаковых числа. Найти эти числа и указать их...

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

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

6
Peregrin
33 / 33 / 5
Регистрация: 16.11.2012
Сообщений: 59
20.11.2012, 01:37 2
C++
1
2
3
4
5
6
7
8
9
for (int j=0;j<n;j++)
    {
        for (int i=2;i<=sqrt(mas[j]);i++)
        {
            if (mas[j]%i==0) break;
        }
        if (i>=sqrt(mas[j])) return true;
    }
    return false;
1
sword7i
3 / 3 / 0
Регистрация: 25.09.2012
Сообщений: 92
20.11.2012, 01:52  [ТС] 3
Цитата Сообщение от Peregrin Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
for (int j=0;j<n;j++)
    {
        for (int i=2;i<=sqrt(mas[j]);i++)
        {
            if (mas[j]%i==0) break;
        }
        if (i>=sqrt(mas[j])) return true;
    }
    return false;
Пишет, что идентификатор i (7-я строчка) неопределен
0
Peregrin
33 / 33 / 5
Регистрация: 16.11.2012
Сообщений: 59
20.11.2012, 01:54 4
Точно, мой косяк.
C++
1
2
3
4
5
6
7
8
9
10
for (int j=0;j<n;j++)
    {
        int i;
        for (i=2;i<=sqrt(mas[j]);i++)
        {
            if (mas[j]%i==0) break;
        }
        if (i>=sqrt(mas[j])) return true;
    }
    return false;
1
sword7i
3 / 3 / 0
Регистрация: 25.09.2012
Сообщений: 92
20.11.2012, 01:58  [ТС] 5
Догадался сам, определил i чуть выше, но функция работает неверно, в массиве [12, 18, 9, 20] - все числа очевидно составные, а функция возвращает единицу.
0
Peregrin
33 / 33 / 5
Регистрация: 16.11.2012
Сообщений: 59
20.11.2012, 02:04 6
Наверно в 8-ой строке стоит заменить >= на >.
Видимо для числа 9 после цикла i=3, соответственно возвращается true.
1
sword7i
3 / 3 / 0
Регистрация: 25.09.2012
Сообщений: 92
20.11.2012, 02:08  [ТС] 7
Peregrin, спасибо, кажется, работает
0
20.11.2012, 02:08
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.11.2012, 02:08

Массив, простые числа
Напишите программу, которая принимает с клавиатуры число N, заполняет массив...

Сформировать два множества, первое содержит все простые числа из данного множества, второе - все составные
Условие задачи следующее:Имеется множество, содержащее натуральные числа из...

Занесите в массив простые множители числа
1. Дано число N (задаётся пользователем). Занесите в массив простые множители...


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

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

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