11 / 11 / 5
Регистрация: 05.10.2016
Сообщений: 122
1

После установки флага -O2 программа не выдаёт правильный ответ

03.04.2017, 19:39. Показов 555. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
В чём проблема?
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
#include <fstream>
#include <array>
#include <vector>
#include <algorithm>
#include <iostream>
 
using namespace std;
 
//ifstream in ("input.txt");
//ofstream out ("output.txt");
 
#define MAX 32001
 
int n = 0;
array<int, MAX> primePrepare;
vector<int> prime;
 
void readAndInitialize () {
  cin >> n;
  for (int i = 2; i <= MAX; i++) {
    primePrepare[i] = i;
  }
}
 
void makeSieve () {
  for (int i = 2; i <= MAX; i++) {
    if (!primePrepare[i]) {
      continue;
    }
    for (int j = i*2; j <= MAX; j += i) {
      primePrepare[j] = 0;
    }
  }
  for (int i = 0; i <= MAX; i++) {
    if (primePrepare[i]) {
      prime.push_back(primePrepare[i] * primePrepare[i]);
    }
  }
}
 
int solve () {
  int cnt = 0;
  for (int i = 1; i <= n; i++) {
    auto finish = lower_bound(prime.begin(), prime.end(), i);
    vector<int>::iterator it;
    bool flag = false;
    int lul = *finish;
    for (it = prime.begin(); it <= finish; it++) {
      lul = *it;
      if (i % (*it) == 0) {
        flag = true;
        break;
      }
    }
    if (!flag) {
      cnt++;
    }
    flag = false;
  }
  return cnt;
}
 
int main() {
  readAndInitialize();
  makeSieve();
  int ans = solve();
  cout << ans << endl;
  return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.04.2017, 19:39
Ответы с готовыми решениями:

Indy: программа не получает правильный ответ от сервера, но сниффер показывает правильный ответ
Всем привет. Моя программа должна сделать гет запрос на определенный сайт. Я включаю программу и...

Вычислить (Выдает не правильный ОТВЕТ)
ребт подскажите что сделать,Выдает ответ +NAN,все голову переломал вот...

выдаёт не правильный ответ только для введённых 1 и 1
#include &lt;stdio.h&gt; #define SIZE 100 int main(){ int mas, i = 0, a = 0, res = 0, rost = 0;...

Калькулятор выдает правильный ответ через раз, как исправить?
Я написал калькулятор, только он у меня через раз правильно считает, исправте пожалуйста... вот...

1
nd2
3437 / 2816 / 1249
Регистрация: 29.01.2016
Сообщений: 9,426
03.04.2017, 19:45 2
Цитата Сообщение от SaynorPRO Посмотреть сообщение
В чём проблема?
Кривизна в коде.
Цитата Сообщение от SaynorPRO Посмотреть сообщение
i <= MAX;
Выход за пределы выделенной памяти. Индекс должен быть меньше MAX.
1
03.04.2017, 19:45
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.04.2017, 19:45
Помогаю со студенческими работами здесь

Программа выдает не правильный результат
Задание: Задана прямоугольная матрица размером N x M вещественных 8-ми байтовых чисел и вектор B(M)...

Программа выдает не правильный результат
Задание: Задана прямоугольная матрица размером N x M вещественных 8-ми байтовых чисел и вектор B(M)...

В случае неверного ответа пользователя программа должна выводить правильный ответ.
Написать программу проверки знания даты основания Санкт-Петербурга(1703г). В случае неверного...

Программа выдает не правильный результат.В чем ошибка?
#include &quot;stdafx.h&quot; #include&lt;stdio.h&gt; #include &lt;cstdlib&gt;//система пауза// #include &lt;locale.h&gt;...

Приведите пример такого числа x, что, несмотря на ошибки, программа печатает правильный ответ
Помогите сделать Требовалось написать программу, при выполнении которой с клавиатуры...

Программа не выдает ответ
Укажите на ошибку, почему не выводится ответ using System; class Program { public static...


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

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

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