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

Дан массив целых чисел. Верно ли, что он состоит только из простых чисел?

11.01.2013, 19:59. Просмотров 1159. Ответов 20
Метки нет (Все метки)

Дан массив целых чисел. Верно ли, что он состоит только из простых чисел?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.01.2013, 19:59
Ответы с готовыми решениями:

Массив целых чисел состоит из n элементов, найти сумму простых чисел, входящих в него
массив целых чисел состоит из n элементов, найти сумму простых чисел, входящих...

Дан массив целых чисел. Верно ли, что все элементы в нем упорядочены пл убыванию
Плиз напишите программу !!!! Дан массив целых чисел. Верно ли, что все элементы...

Дан массив целых чисел. Верно ли, что сумма квадратов элементов массива есть пятизначное число
дан массив целых чисел. Верно ли, что сумма квадратов элементов массива есть...

Дан массив целых чисел. Выяснить верно ли, что сумма элементов массива есть четное число
Дан массив целых чисел. Выяснить верно ли, что сумма элементов массива есть...

Дан массив вещественных чисел. Выяснить верно ли, что количество положительных элементов не превышает 5
Привет всем. помогите пожалуйста с задачей. Дан массив вещественных чисел....

20
magirus
11.01.2013, 20:00
  #2
 Комментарий администратора 
не первый даже уже год на форуме, называйте темы информативно.
0
Дмитрий 93
74 / 59 / 24
Регистрация: 03.06.2011
Сообщений: 309
11.01.2013, 20:03 3
простое число делится на 1 и на само себя. если в массиве элемент не равен 1, не равен 2, не делится на 2, 3 и 5 то оно простое
0
zxcvbnm
1 / 1 / 0
Регистрация: 15.10.2009
Сообщений: 49
11.01.2013, 20:04  [ТС] 4
Цитата Сообщение от Дмитрий 93 Посмотреть сообщение
простое число делится на 1 и на само себя. если в массиве элемент не равен 1, не равен 2, не делится на 2, 3 и 5 то оно простое
а как это реализовать в программе?
0
Дмитрий 93
74 / 59 / 24
Регистрация: 03.06.2011
Сообщений: 309
11.01.2013, 20:17 5
условным оператором

Добавлено через 7 минут
C++
1
2
 if (a[i]!=1 || a[i]!=2) cout<<a[i]<<"\t";
 else if (a[i]%2!=0 || a[i]%3!=0 || a[i]%5!=0) cout<<"No"<<endl;
0
zxcvbnm
1 / 1 / 0
Регистрация: 15.10.2009
Сообщений: 49
11.01.2013, 20:17  [ТС] 6
а можете, пожалуйста, написать эту программу?
0
neske
1527 / 894 / 192
Регистрация: 26.03.2010
Сообщений: 3,074
11.01.2013, 20:19 7
Дмитрий 93, число на простоту у нас уже проверяется тремя делителями? )
0
Дмитрий 93
74 / 59 / 24
Регистрация: 03.06.2011
Сообщений: 309
11.01.2013, 20:24 8
как-то поленился запиливать один из тестов на простоту
0
zxcvbnm
1 / 1 / 0
Регистрация: 15.10.2009
Сообщений: 49
11.01.2013, 20:29  [ТС] 9
можете пожалуйста выложить весь текст программы?
0
ValeryS
Модератор
7376 / 5576 / 708
Регистрация: 14.02.2011
Сообщений: 18,959
11.01.2013, 20:37 10
Цитата Сообщение от Дмитрий 93 Посмотреть сообщение
если в массиве элемент не равен 1, не равен 2, не делится на 2, 3 и 5
число 49 не делится ни на 2 ни на 3 ни на 5 оно простое ???
темы про простые числа возникают чуть ли не каждую неделю, вплоть до тога что разработаны очень шустрые алгоритмы
воспользуйтесь уже поиском
0
David Sylva
1297 / 959 / 267
Регистрация: 17.05.2012
Сообщений: 2,687
11.01.2013, 20:39 11
Можно вот так сделать
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
#include <iostream>  
 
char* func(int* array, int size) 
{ 
    int count = 0, i = 0, j; 
 
    while(i < size) 
    {
    for ( j = 2; j <= array[i] / 2; j++)  
        if(!(array[i] % j)) break; 
    if( j > (array[i] / j)) 
        count++; 
    i++; 
    } 
    if( count == size) 
        return "Yes"; 
    else 
        return "No"; 
}
 
int main() 
{ 
    const int size = 10; 
    int array[size] = { 11, 2, 3, 11, 5, 13, 17, 3, 5, 11 }; 
    char*(*ptr)(int*, int); 
    ptr = func; 
 
    std::cout << ptr(array, size) << " "; 
}
0
Fareiro
15 / 15 / 11
Регистрация: 06.12.2012
Сообщений: 131
11.01.2013, 20:43 12
C++
1
2
3
4
5
6
7
8
9
10
11
int simple(int n)
{
    int i;
    
    if(n <= 1)
       return 0;
    for(i = 2; i <= sqrt(n); i++)
       if(n % i == 0)
          return 0;
    return 1;
}
можно например сделать счетчик, и каждый раз когда функция возвращает true увеличивать его на 1. В конце сравнить размер массива и счетчика. Если равны - написать что состоит из простых чисел, если отличаются - то из разных... как-то так

Ну вот, уже опередили
0
ValeryS
Модератор
7376 / 5576 / 708
Регистрация: 14.02.2011
Сообщений: 18,959
11.01.2013, 20:45 13
David Sylva, ты же вроде тоже смотрел эти обсуждения?
Цитата Сообщение от David Sylva Посмотреть сообщение
for ( j = 2; j <= array[i] / 2; j++)
до корня нужно считать
для маленьких чисел это ерунда
а для чисел типа 1 000 000 и больше
или 1000 итераций или 500 000 есть разница

Добавлено через 1 минуту
Цитата Сообщение от Fareiro Посмотреть сообщение
можно например сделать счетчик, и каждый раз когда функция возвращает true увеличивать его на 1.
зачем
один раз вернули число не простое, и все цикл можно завершать ибо
Цитата Сообщение от zxcvbnm Посмотреть сообщение
Верно ли, что он состоит только из простых чисел
уже ложь
0
David Sylva
1297 / 959 / 267
Регистрация: 17.05.2012
Сообщений: 2,687
11.01.2013, 20:47 14
Цитата Сообщение от ValeryS Посмотреть сообщение
David Sylva, ты же вроде тоже смотрел эти обсуждения?
не не смотрел.
Я думаю здесь не критично, то о чём ты говоришь.В том плане, что это обычная задача и не обязательно её решать
самым лучшим из алгоритмов.
0
Fareiro
15 / 15 / 11
Регистрация: 06.12.2012
Сообщений: 131
11.01.2013, 20:47 15
ValeryS, ну или так...
Только хардкор
0
ValeryS
Модератор
7376 / 5576 / 708
Регистрация: 14.02.2011
Сообщений: 18,959
11.01.2013, 20:50 16
Цитата Сообщение от Fareiro Посмотреть сообщение
for(i = 2; i <= sqrt(n); i++)
можно в два раза убыстрить
C++
1
2
3
4
5
    if(n % 2 == 0)
          return 0;
 for(i = 3; i <= sqrt(n); i+=2)
      if(n % i == 0)
          return 0;
0
zxcvbnm
1 / 1 / 0
Регистрация: 15.10.2009
Сообщений: 49
11.01.2013, 21:08  [ТС] 17
а можно сделать с циклом do...while и попроще)?

Добавлено через 15 минут
пожалуйста
0
David Sylva
1297 / 959 / 267
Регистрация: 17.05.2012
Сообщений: 2,687
11.01.2013, 21:10 18
zxcvbnm Вы к кому обращаетесь? Если ко мне, то мой код очень простой.Спросите, что не понятно конкретно?
0
zxcvbnm
1 / 1 / 0
Регистрация: 15.10.2009
Сообщений: 49
11.01.2013, 21:11  [ТС] 19
Цитата Сообщение от David Sylva Посмотреть сообщение
zxcvbnm Вы к кому обращаетесь? Если ко мне, то мой код очень простой.Спросите, что не понятно конкретно?
вы можете написать с циклом do...while?
0
David Sylva
1297 / 959 / 267
Регистрация: 17.05.2012
Сообщений: 2,687
11.01.2013, 21:13 20
То же самое с do while
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
#include <iostream>  
 
char* func(int* array, int size) 
{ 
    int count = 0, i = 0, j; 
 
    do
    {
    for ( j = 2; j <= array[i] / 2; j++)  
        if(!(array[i] % j)) break; 
    if( j > (array[i] / j)) 
        count++; 
    i++; 
    } while(i < size);
    if( count == size) 
        return "Yes"; 
    else 
        return "No"; 
}
 
int main() 
{ 
    const int size = 10; 
    int array[size] = { 11, 2, 3, 11, 5, 13, 17, 3, 5, 11 }; 
    char*(*ptr)(int*, int); 
    ptr = func; 
 
    std::cout << ptr(array, size) << " "; 
}
0
11.01.2013, 21:13
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.01.2013, 21:13

Дан массив вещественных чисел. Выяснить верно ли, что количество положительных элементов не превышает 5
Здравствуйте. Помогите решить задачу. Дан массив вещественных чисел....

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

Дан двумерный массив целых чисел, найти количество чисел, кратных N
Дан двумерный массив целых чисел, найти количество чисел, кратных N. Как это...


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

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

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