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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 5.00
ViktorW
4 / 4 / 0
Регистрация: 20.10.2012
Сообщений: 21
#1

Вывести простые числа из массива - C++

21.02.2013, 22:03. Просмотров 1443. Ответов 5
Метки нет (Все метки)

Вообщем не пойму, почему не работает.
Для определения простое ли число использовал эту программу

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
int main ()
{
int n;
cin>>n;
int i;
for (i = 2; i<sqrt(n); i++) {
    if (n % i == 0) {
        cout<<"ne prost";
        return 0;
    }
}
cout<<"prost";
return 0;}

И всунуть эту проверку для массива не смог, проверяет только первый элемент массива

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
34
#include <iostream>
#include<time.h>
#include <windows.h>
using namespace std;
 
int main()
{
    srand(time(NULL));
    setlocale (LC_ALL, "Russian");
  int r,i;
  cout<< "razmer\t";
  cin>>r;
  int *mas1=new int[r];
  for (i = 0; i < r; i++) 
  {
  mas1[i] = rand()%30; 
  }
   cout<<"массив"<<endl;
  for (i = 0; i < r; i++)
  {
  cout<<mas1[i]<<" "; 
  }
  cout<<endl;
 
 
 int j;
  for (i = 0; i < r; i++){
   for (j = 2; j<sqrt(mas1[i]); j++)
    if (mas1[i] % j == 0) return 0;
    else
   cout<<mas1[i]<<" "; return 0;}
 
  delete [] mas1;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.02.2013, 22:03     Вывести простые числа из массива
Посмотрите здесь:

Вывести простые числа одномерного массива - C++
Помогите, нужно вывести на экран простые числа одномерного массива. При вызове функции поиска простых чисел на экран выводятся только нули....

Вывести на экран только простые числа из массива - C++
Написать программу, которая выводит на экран только простые числа. Массив и его длина вводятся пользователем.

Вывести все простые числа из заданного пользователем массива - C++
Задан линейный массив чисел N. N вводит пользователь. Вывести все простые числа массива.

Есть ли среди элементов массива простые числа? Если да, то вывести номера этих элементов - C++
Задан целочисленный массив размерности N. Есть ли среди элементов массива простые числа? Если да, то вывести номера этих элементов.

Есть ли среди элементов заданного массива простые числа? Если да, то вывести номера этих элементов - C++
Задан целочисленный массив размерности N. Есть ли среди элементов массива простые числа? Если да, то вывести номера этих элементов.

Дано натуральное число. Вывести на экран все простые числа до заданного числа. - C++
Дано натуральное число. Вывести на экран все простые числа до заданного числа.

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

Вывести все простые числа до заданного числа - C++
Нужно вывести все простые числа до заданного числа N. С помощью процедуры и без массивов.

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

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

Вывести простые числа - C++
Помогите разобраться с циклами, напиши как делать первое задание:3 Заранее благодарю:)

Вывести простые числа от M до N - C++
здравствуйте. хочу понять есть ли у меня ошибки в файле 1.cpp. Условие задачи: вывести все простые числа от M до N включительно. в...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
unit7
30 / 30 / 4
Регистрация: 07.08.2012
Сообщений: 86
21.02.2013, 22:11     Вывести простые числа из массива #2
Конечно только первый. Вы же после выходите из main в одном из этих мест:
C++
1
2
3
   if (mas1[i] % j == 0) return 0;
    else
   cout<<mas1[i]<<" "; return 0;}
Это, видимо, нужно переписать вот так:

C++
1
2
3
4
5
6
7
8
9
int j;
  for (i = 0; i < r; i++){
    cout << mas1[i] << " ";
   for (j = 2; j<= sqrt(mas1[i]); j++)
    if (mas1[i] % j == 0) {
      cout << "not simple!\n";
      break;
    }
  }
ViktorW
4 / 4 / 0
Регистрация: 20.10.2012
Сообщений: 21
21.02.2013, 23:05  [ТС]     Вывести простые числа из массива #3
Цитата Сообщение от unit7 Посмотреть сообщение
Конечно только первый. Вы же после выходите из main в одном из этих мест:
C++
1
2
3
   if (mas1[i] % j == 0) return 0;
    else
   cout<<mas1[i]<<" "; return 0;}
Это, видимо, нужно переписать вот так:

C++
1
2
3
4
5
6
7
8
9
int j;
  for (i = 0; i < r; i++){
    cout << mas1[i] << " ";
   for (j = 2; j<= sqrt(mas1[i]); j++)
    if (mas1[i] % j == 0) {
      cout << "not simple!\n";
      break;
    }
  }
спасибо. Чуть
изменил, как нужно мне (вывести тольк простые числа)
C++
1
2
3
4
5
6
7
 int j;
  for (i = 0; i < r; i++){
   for (j = 2; j<= sqrt(mas1[i]); j++)
    if (mas1[i] % j == 0) {
      break;
    }else{cout<< mas1[i]<<" "; break;}
  }
unit7
30 / 30 / 4
Регистрация: 07.08.2012
Сообщений: 86
21.02.2013, 23:47     Вывести простые числа из массива #4
В таком случае у вас неверно будет определяться. Нужно вот так:

C++
1
2
3
4
5
6
7
8
9
10
11
12
int j;
  for (i = 0; i < r; i++){
  bool simple = true;
   for (j = 2; j<= sqrt(mas1[i]); j++)
    if (mas1[i] % j == 0) {
      simple = false;
      break;
    }
  if (simple) {
    cout<< mas1[i]<<" "; break;
  }
  }
ViktorW
4 / 4 / 0
Регистрация: 20.10.2012
Сообщений: 21
22.02.2013, 01:39  [ТС]     Вывести простые числа из массива #5
Цитата Сообщение от unit7 Посмотреть сообщение
В таком случае у вас неверно будет определяться. Нужно вот так:

C++
1
2
3
4
5
6
7
8
9
10
11
12
int j;
  for (i = 0; i < r; i++){
  bool simple = true;
   for (j = 2; j<= sqrt(mas1[i]); j++)
    if (mas1[i] % j == 0) {
      simple = false;
      break;
    }
  if (simple) {
    cout<< mas1[i]<<" "; break;
  }
  }
находит одно значение и останавливается
vua72
415 / 415 / 85
Регистрация: 28.11.2010
Сообщений: 1,183
Завершенные тесты: 1
22.02.2013, 01:56     Вывести простые числа из массива #6
уберите break, там где печатается простое число.
Yandex
Объявления
22.02.2013, 01:56     Вывести простые числа из массива
Ответ Создать тему
Опции темы

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