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

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

Войти
Регистрация
Восстановить пароль
 
 
Ruli
0 / 0 / 0
Регистрация: 16.01.2013
Сообщений: 16
#1

как будет выглядеть программа? - C++

16.01.2013, 14:45. Просмотров 769. Ответов 24
Метки нет (Все метки)

Найти все простые числа не превосходящие число N
 Комментарий модератора 
Правила форума п. 5.5: Запрещено размещать тему в нескольких разделах одновременно (кросспостинг), а также дублировать тему в одном разделе.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.01.2013, 14:45
Здравствуйте! Я подобрал для вас темы с ответами на вопрос как будет выглядеть программа? (C++):

как будет выглядеть в Visual C++ - C++
void __fastcall TForm1::Memo1DblClick(TObject *Sender) { OpenDialog1->Execute(); //Загружаем данные их файла ...

как это будет выглядеть на С++? - C++
var x,p:real; i:byte; begin writeln('Vvedite x'); readln(x); p:=1;; i:=2; while i<=64 do begin ...

Как это будет выглядеть в С++ - C++
Вот программа на Паскале VAR S:STRING; BEGIN WHILE NOT EOF DO BEGIN READLN(S); WRITELN(S) ...

Как этот код будет выглядеть на C++ - C++
For i:=0 to FieldsCount-1 do Fields.Clear; Как этот код будет выглядеть на C++

Подскажите, как формула будет выглядеть на С++ - C++
Как эта формула будет выглядеть на С++?

Как это будет выглядеть на С++? (пасскаль) - C++
uses crt; function F(x:real):real; begin F:=(x*x+1)*sqr(cos(x)); end; var a,h,s:real; n,i:integer; begin clrscr; ...

24
Invader_Zim
Twilight Parasite
153 / 149 / 2
Регистрация: 21.07.2011
Сообщений: 908
16.01.2013, 14:48 #2
Можно в лоб.
береш число, и проверяеш его делением с остатком.
и так все числа. Что подходят, записываеш.
1
Ruli
0 / 0 / 0
Регистрация: 16.01.2013
Сообщений: 16
16.01.2013, 14:51  [ТС] #3
я просто не понимаю как написать это в с++
0
Invader_Zim
Twilight Parasite
153 / 149 / 2
Регистрация: 21.07.2011
Сообщений: 908
16.01.2013, 14:53 #4
Ruli, Тебе чтобы изучить, или чтобы сдать?
1
Саня gamer
96 / 70 / 1
Регистрация: 18.05.2011
Сообщений: 343
Записей в блоге: 1
16.01.2013, 14:53 #5
напиши на паскале
0
Ruli
0 / 0 / 0
Регистрация: 16.01.2013
Сообщений: 16
16.01.2013, 14:54  [ТС] #6
чтобы сдать и объяснить преподователю

Добавлено через 44 секунды
обязательно в с++
0
Invader_Zim
Twilight Parasite
153 / 149 / 2
Регистрация: 21.07.2011
Сообщений: 908
16.01.2013, 14:56 #7
Ruli, тебе в будующем С++ не понадобиться?
0
Ruli
0 / 0 / 0
Регистрация: 16.01.2013
Сообщений: 16
16.01.2013, 14:57  [ТС] #8
думаю что нет
0
ArmanPrestige
Pied Piper
232 / 223 / 51
Регистрация: 15.01.2013
Сообщений: 855
Завершенные тесты: 1
16.01.2013, 15:02 #9
Цитата Сообщение от Ruli Посмотреть сообщение
чтобы сдать и объяснить преподователю

Добавлено через 44 секунды
обязательно в с++
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
#include <iostream>
#include <memory.h>
#define S 150000
bool F[40000],B[S];
int P[10000],p=0;
long long pre[]={0,79835127420606,307011790722811,675490692294675,
1182357709860117,1825666731904492,2603717273255596,3515373254256955,
4559774703609068,5736228298250417,7043215380181465,8481171232603598,
10049045128993920,11745741297705187,13571569117886223,15525668198679060,
17608378509778587,19817357312226874,22154562782502270,24618987306923167,
27209541722648039};
int main(){
    int a,b,c,n,Z=(1<<15),Q=S*350;
    std::cin >> n;
    long long ans=pre[n/Q];
    for(a=2;a*a<Z;a++)if(!F[a])for(b=a*a;b<Z;b+=a)F[b]=true;
    for(a=2;a<Z;a++)if(!F[a])P[p++]=a;
    for(a=(n/Q)*Q;a<=n;a+=S){
        memset(B,0,sizeof B);
        for(b=0;b<p;b++)for(c=std::max(2,(a+P[b]-1)/P[b])*P[b]-a;c<S;c+=P[b])B[c]=true;
        if(a==0)B[0]=B[1]=true;
        for(b=0;b<S&&a+b<=n;b++)if(!B[b])ans+=a+b;
    }
    std::cout << ans;
    return 0;
}
вот, держи!
0
Ruli
0 / 0 / 0
Регистрация: 16.01.2013
Сообщений: 16
16.01.2013, 15:27  [ТС] #10
я ее еще не проверял, но что-то мне подсказывает что она не правильная
0
ArmanPrestige
Pied Piper
232 / 223 / 51
Регистрация: 15.01.2013
Сообщений: 855
Завершенные тесты: 1
16.01.2013, 15:48 #11
Цитата Сообщение от Ruli Посмотреть сообщение
я ее еще не проверял, но что-то мне подсказывает что она не правильная
если вы не понимаете код - это еще не значит что программа не правильная.
программа функционирует и по своей структуре является одним из наиболее быстрых в исполнении.
0
Ruli
0 / 0 / 0
Регистрация: 16.01.2013
Сообщений: 16
16.01.2013, 16:02  [ТС] #12
после нажати F9 ввожу произвольное число, но ответ он мне не выдает, почему?
0
ArmanPrestige
Pied Piper
232 / 223 / 51
Регистрация: 15.01.2013
Сообщений: 855
Завершенные тесты: 1
16.01.2013, 17:27 #13
Цитата Сообщение от Ruli Посмотреть сообщение
если не сложно помогите с тем кодом разобраться?
вот простой пример. просмотрите код(он конечно не так эффективен как тот, что я скидывал до этого - но зато очень простой и понятный). что не поймете - спрашивайте! (п.с. на работоспособность не проверял - компилятора в данный момент нет под рукой)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include<iostream>
using namespace std;
 
int main()
{
  int n, sum=0;
  cin>>n;
  for(int i=2;i<=n;i++)
  {
    for(int j=2;j<i;j++)
      if(i%j==0)goto next;
    sum+=i;
next:;
  }
  cout << sum << endl;
}
0
go
Эксперт С++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
16.01.2013, 17:29 #14
Как-то так набросал
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
#include <iostream>
#include <vector>
 
std::vector<unsigned int> PrimeNumber(unsigned int n)
{
   std::vector<unsigned int> Res; 
   
    // заполняем решето единицами
   for(std::size_t i = 0; i <= n; ++i)
      Res.push_back(1);
   
   for(std::size_t p = 2; p * p <= n; ++p) 
   {
        // если i - простое (не вычеркнуто)
      if(Res[p] == 1)
      {         
            // то вычеркнем кратные i
         for(std::size_t i = p * p; i <= n; i += p)
         {
            Res[i]=0;
         }
      }
   }
   Res[0] = 0;
   Res[1] = 0;
   return Res;
}
    
int main()
{
   int n;
   std::cin >> n;
   std::vector<unsigned int> Res(PrimeNumber(n));
   for (std::size_t i = 2; i < Res.size(); ++i)
   {
      if (Res[i])
         std::cout << i << " ";
   }
   std::cout << std::endl;
}
http://liveworkspace.org/code/2YWW9y$0
0
Ruli
0 / 0 / 0
Регистрация: 16.01.2013
Сообщений: 16
16.01.2013, 17:32  [ТС] #15
спасибо и за это, но когда я ввожу любое число и нажимаю Enter он не выдает ответ, из-за чего это может быть?
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.01.2013, 17:32
Привет! Вот еще темы с ответами:

Как полностью будет выглядеть программный - C++
Даны две квадратные матрицы А и В порядка n и m соответственно. Вывести на экран положительные элементы побочной диагонали каждой матрицы.

Как будет выглядеть блок-схема(алгоритм)? - C++
хотелось бы получить любую помощь:help::help::help: #include &lt;conio.h&gt; #include &lt;math.h&gt; #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; ...

Как будет выглядеть прототип функции умножения? - C++
Как будет выглядеть прототип функции умножения,если эта функция будет компонентной и как будет выглядеть прототип этой же функции, если она...

Как будет выглядеть на C++ часть кода, написанного на Pascal? - C++
type station = record ns:byte; time:longint; end; train = record n:byte; st:arrayof...


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

Или воспользуйтесь поиском по форуму:
15
Yandex
Объявления
16.01.2013, 17:32
Ответ Создать тему
Опции темы

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