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

Сумма простых. Где ошибка?

15.04.2017, 12:36. Показов 999. Ответов 6
Метки нет (Все метки)

Найти сумму только тех элементов числовой последовательности, значения которых являются простыми числами.
Входные данные:
Во входном потоке в первой строке задано целое число N - количество элементов целочисленной числовой последовательности (0 < N < 1000). Во второй строке через пробел перечислены значения элементов числовой последовательности. Значения элементов по модулю не превышают 10000.

В выходной поток вывести единственное целое число.
Пример входного файла (input.txt):
5
1 3 5 10 11
Пример выходного файла (output.txt):
19

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include<iostream>
using namespace std;
int main()
{
  int n,k=1,s=0;
   cin>>n;
  int a[n];
  for(int i=0;i<n;i++)
  {
    cin>>a[i];
    {
    if(a[i]>1 && (a[i]/a[i])==0 && (a[i]/1)==0) 
    s+=a[i];
  }
  }
    cout<<s<<" ";  
  return 0;
}
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.04.2017, 12:36
Ответы с готовыми решениями:

Где ошибка, вывод простых чисел
for ( int i = 2; i * i &lt;= n; i++ ) { if ( n % i == 0 ) { return 0; ...

Составить программу, в которой вычислить z=(s1+s2)/(k1*k2), где s1 и k1 - сумма и количество положительных элементов массива Х[N]; s1 u k2 - сумма
Составить программу, в которой вычислить z=(s1+s2)/(k1*k2), где s1 и k1 - сумма и количество...

Вычислить F=(Sn+So)/(Sn-So), где Sn - сумма положительных элементов в нечетных строках матрицы Y(9x12), а So - сумма отр
Вычислить F=(Sn+So)/(Sn-So), где Sn - сумма положительных элементов в нечетных строках матрицы...

Сумма простых чисел ускорение
Надо находить сумму всех простых чисел. Ограничения: на числе прибл. 1000000000 надо вписаться в...

6
7166 / 6141 / 2802
Регистрация: 14.04.2014
Сообщений: 26,462
15.04.2017, 12:40 2
7-я строка сомнительна. И где проверка на простоту?
0
Диссидент
Эксперт C
26841 / 16747 / 3671
Регистрация: 24.12.2010
Сообщений: 37,493
15.04.2017, 13:01 3
Цитата Сообщение от nmcf Посмотреть сообщение
И где проверка на простоту?
Виддимо, ТС считает ей вот это
Цитата Сообщение от MariaFitzgerald Посмотреть сообщение
C++
1
if(a[i]>1 && (a[i]/a[i])==0 && (a[i]/1)==0)
Цитата Сообщение от nmcf Посмотреть сообщение
7-я строка сомнительна
Да, не все компиляторы это едят. Но более-менее современные кушают с удовольствием. Впрочем, массив здесь вообще не нужен.
0
2 / 2 / 2
Регистрация: 14.04.2015
Сообщений: 9
15.04.2017, 13:08 4
1.Неправильная инициализация массива:
Либо инициализируйте статический массив с заранее определенным количеством элементов (по условию задачи N не превышает 1000), либо динамический с помощью new. Либо не используйте массивы вовсе.
2. Нет проверки на простоту:
Вам следует для начала правильно сформулировать условие простого числа.
0
1 / 1 / 0
Регистрация: 06.03.2017
Сообщений: 109
15.04.2017, 17:27  [ТС] 5
humanshapedhole, ну, простое число это число, которое больше единицы и имеющее ровно два натуральных делителя: 1 и само себя. Если иф неправильный, я тогда не очень понимаю что в нем писать.
0
2 / 2 / 2
Регистрация: 14.04.2015
Сообщений: 9
15.04.2017, 18:25 6
MariaFitzgerald, дело в том, что любое число нацело делится на себя самого и на единицу. Поэтому следующая проверка не имеет смысла:
C++
1
if(... && (a[i]/a[i])==0 && (a[i]/1)==0)
Как вы верно заметили:
простое число это число, которое больше единицы и имеющее ровно два натуральных делителя: 1 и само себя
Вам нужно проверить, чтобы число не имело иных делителей. Т.е., фактически не должно делится ни на одно из натуральных чисел от 2 до a[i]/2. Попробуйте именно это условие написать.
0
Диссидент
Эксперт C
26841 / 16747 / 3671
Регистрация: 24.12.2010
Сообщений: 37,493
15.04.2017, 18:30 7
Лучший ответ Сообщение было отмечено MariaFitzgerald как решение

Решение

C++
1
2
3
4
for(i=2; i*i <=n; i++) 
  if (n%i==0) break;
if (i*i < n) cout << n << "Не простое":
else cout << << n " - Простое";
Цитата Сообщение от humanshapedhole Посмотреть сообщение
до a[i]/2.
Достаточно до квадратного корня
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.04.2017, 18:30
Помогаю со студенческими работами здесь

Олимпиадная задача Сумма простых
наприме мы вводим размер массива 3 потом сколько чисел надо сложить 2 а потом массив 6 5 7 и вы...

Сумма квадратов простых чисел
Посчитать сумму квадратов N первых простых чисел, где значение N задает пользователь

Где ошибка в коде? Программа пробегает по массиву и возвращает колличество простых чисел
Где ошибка в коде??? Программа пробегает по массиву и возвращает колличество простых (2, 3, 5, 7 и...

Где ошибка? (сумма главной диагонали матрицы)
Матрицу создал, а вот сумму не считает выдает ошибку. Ругается на строку с суммой procedure...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru