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

Решето Эратосфена - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 4.64
ilyasfromkz
 Аватар для ilyasfromkz
-1 / 1 / 0
Регистрация: 12.09.2012
Сообщений: 46
06.10.2012, 23:38     Решето Эратосфена #1
Дано число N (2<=N <=10000), найдите и выведите простые числа между 2 и данным N.
Простое число - число, которое может быть разделено ТОЛЬКО на 1 и на себя самого.
Примеры: 2, 13, 17
Намек: Используйте метод Эратосфена. Посмотрите, как это работает ниже на картинке.

на языке оригинала
Give N (2<=N<=10000) number,find and output the prime numbers between 2 and given N.
Prime number is the number that can be divided by 1 and by inself ONLY.
Examples : 2 , 13, 17
Hint: Use the method of Erathosfen.Look how is't work below on the picture.


Выдает ошибку на 7 тесте (незнаю что за тест это онлайн проверка училки (контестер))

C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
 
using namespace std;
 
int main () {
  int n,i;
  cin>>n;
  for (i=2; i<=n; i++) {
    if ((i%2)!=0 && (i%3)!=0 && (i%5)!=0 && (i%7)!=0 || i==2 || i==3 || i==5 || i==7)
      cout<<i<<' ';
  }
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.10.2012, 23:38     Решето Эратосфена
Посмотрите здесь:

Решето Эратосфена C++
Решето Эратосфена C++
Решето Эратосфена C++
Решето Эратосфена C++
C++ Решето Эратосфена
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
SpamBot
 Аватар для SpamBot
13 / 13 / 0
Регистрация: 04.10.2012
Сообщений: 29
06.10.2012, 23:52     Решето Эратосфена #2
На решето Эратосфена этот код не похож. Смотри http://ru.wikipedia.org/wiki/%D0%A0%...B5%D0%BD%D0%B0
ilyasfromkz
 Аватар для ilyasfromkz
-1 / 1 / 0
Регистрация: 12.09.2012
Сообщений: 46
07.10.2012, 00:26  [ТС]     Решето Эратосфена #3
Цитата Сообщение от SpamBot Посмотреть сообщение
На решето Эратосфена этот код не похож. Смотри http://ru.wikipedia.org/wiki/%D0%A0%...B5%D0%BD%D0%B0
написал код по алгоритму из вики

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
#include <iostream>
 
using namespace std;
 
int main () {
  int n,i,a[i],p,np;
  cin>>n;
  p=2;
  for (i=2; i<=n; i++) {
    a[i]=i;
  }
  i=0;
  while (p*p<=n) {
         np=p;
         while (p<n) {
               i++;
               if (a[i]==p)
                  a[i]=0;
               p==p+np;
         }
         p=np+1; 
  }
  for (i=2; i<=n; i++) {
      if (a[i]!=0)
      cout<<a[i]<<' ';
      }
}
при компилировании виндовс выдает ошибку и закрывает я даже не успеваю ничего ввести
компилятор: DEV-C++
тока не пишите скачай другой этот норм не робил до этого а так код то хоть правильный проверьте?
SpamBot
 Аватар для SpamBot
13 / 13 / 0
Регистрация: 04.10.2012
Сообщений: 29
07.10.2012, 01:04     Решето Эратосфена #4
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
#include <iostream>
#include <stdio.h>
 
using namespace std;
 
int main () {
  int n,i,p,np;
  cin>>n;
  int a[n+1];
  
  for (i=2; i<=n; i++) {
    a[i]=i;
  }
 
  cout << "Prime numbers:" << endl;
 
  for(i = 2;i<=n;i++)
  {
    if(a[i] != 0)
    {
        cout << a[i] << endl;
        for(p = 2 * i; p <= n ; p += i)
        {
            a[p] = 0;
        }
    }
  }
  getchar();
  return 0;
 
}
Работает под Linux, тести под Dev C++
ilyasfromkz
 Аватар для ilyasfromkz
-1 / 1 / 0
Регистрация: 12.09.2012
Сообщений: 46
07.10.2012, 13:36  [ТС]     Решето Эратосфена #5
Цитата Сообщение от SpamBot Посмотреть сообщение
Работает под Linux, тести под Dev C++
что за линукс?? не подскажите название самого хорошего компилятора, ну в смысле удобного а то этот глючит и скобки не подсвечиваются изза этого куча ошибок всегда, Visual Studio долго качать..
SpamBot
 Аватар для SpamBot
13 / 13 / 0
Регистрация: 04.10.2012
Сообщений: 29
07.10.2012, 15:38     Решето Эратосфена #6
Linux - операционная система.
Но если у тебя Windows, то Dev C++ или Visual Studio - самое оно.
Программа должна работать и там, и там.
Yandex
Объявления
07.10.2012, 15:38     Решето Эратосфена
Ответ Создать тему
Опции темы

Текущее время: 16:38. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru