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

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

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

Обработка целых данных (найти все простые числа, имеющие возрастающую последовательность, сумма цифр которых равна M) - C++

02.04.2013, 09:43. Просмотров 662. Ответов 2
Метки нет (Все метки)

Здравствуйте, дорогие форумчане.
Мне нужна ваша помощь.
Как реализовать данную программу?
для натуральных чисел не превосходящих заданного числа N, найти все простые числа, имеющие возрастающую последовательность, сумма цифр которых равна M.
------------
Математически решается эта задача вот как:
1 - выписываем простые все числа не превосходящие N (решето эратосфена).
2 - Проверяем в каждом сумму цифр.
------------
проверять можно по мере выписывания
------------
сумма цифр: 1.остаток от деления на 10 2. делишь число на 10 3, остаток от частного и тд...
------------
Помогите, пожалуйста, реализовать программу. За ранее благодарен.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.04.2013, 09:43     Обработка целых данных (найти все простые числа, имеющие возрастающую последовательность, сумма цифр которых равна M)
Посмотрите здесь:

C++ Найти среди всех трёхзначных целых чисел те, у которых сумма цифр равна N
Найти все простые числа от 1000 до 1999, в каждом из которых сумма первой и второй цифр в записи этого числа равна сумме третьей и четвертой. C++
C++ Найти все простые числа, имеющие возрастающую последовательность цифр, сумма которых равна M
Помочь доделать программу (найти все простые числа, имеющие возрастающую последовательность цифр, сумма которых равна M) C++
C++ Найти все четырёхзначные числа, у которых сумма крайних цифр равна сумме средних цифр, а само число делится на 6 и 27
Найти все трехзначные числа, сумма цифр которых равна данному целому числу C++
Найти все трехзначные числа, состоящие из разных цифр, сумма которых равна А C++
C++ Найти все четырехзначные числа у которых сумма первых двух цифр равна сумме двух последних
Найти все трехзначные числа, сумма цифр которых равна заданному целому числу C++
Найти все натуральные числа из промежутка от 1 до 200, у которых сумма цифр равна S C++
C++ Вывести все n-значные числа, сумма цифр которых равна k
Найти все простые числа, не превосходящие заданного числа, сумма цифр которых, также является простым числом C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
salam
157 / 138 / 11
Регистрация: 10.07.2012
Сообщений: 709
02.04.2013, 09:54     Обработка целых данных (найти все простые числа, имеющие возрастающую последовательность, сумма цифр которых равна M) #2
Цитата Сообщение от sanyachel9binsk Посмотреть сообщение
имеющие возрастающую последовательность
what does it mean?)
sanyachel9binsk
1 / 1 / 0
Регистрация: 27.10.2012
Сообщений: 209
02.04.2013, 18:04  [ТС]     Обработка целых данных (найти все простые числа, имеющие возрастающую последовательность, сумма цифр которых равна M) #3
Цитата Сообщение от salam Посмотреть сообщение
what does it mean?)
Чтобы они отображались в порядке возрастания.

Добавлено через 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
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
#include <iostream>
#include <conio.h>
#include <math.h>
#include <stdlib.h>
using namespace std;
 
int main()
{long N,M,s,c,z,i,j,y;
 int f,k,fl2,k1,k2,fl,ind;
 system("cls");
 cout<<"Vvedite chislo N \n";
 cout<<"N=";
 cin>>N;
 cout<<"Vvedite chislo M \n";
 cout<<"M=";
 cin>>M;
 s=0;ind=0;
 f=0;fl=1;
 c=1;fl2=1;
 for(k=1;k<N;k++)
     c*=10;
 c*=N;
 for(i=31;i<=c;i=i+2)
    {
     for(j=3;j<i;j=j+2)
           {
             z=i%j;
             if(z==0)
                {
                  fl=0;
                }
          }
     if(fl==1)
        {
          for(y=i;y>0;y/=10)
                s+=(y%10);
          if(s==N)
             {
              for(y=i;y>0;y/=10)
                   {
                     k1=y%10;
                     k2=((y/10)%10);
                     if(y<10)
                     if(k2==0)
                     k2=k1+1;
                     if(k1>=k2)
                     fl2=0;
                   }
               if(fl2==1)
                {
                  ind++;
                  cout<<"  "<<ind<<"-e chislo: "<<i<<endl;
                  f=1;
                }
              }
         fl2=1;
       }
     fl=1;s=0;
    }
 if(f==0)
      cout<<endl<<"net takih chusel"<<endl;
  cout<<"conec";
 getch();
}
Я программу то написал, но препод сказал, что тут ошибка. А где? Не могу понять...

Добавлено через 24 минуты
Никто не поможет?(

Добавлено через 7 часов 34 минуты
АП.
Yandex
Объявления
02.04.2013, 18:04     Обработка целых данных (найти все простые числа, имеющие возрастающую последовательность, сумма цифр которых равна M)
Ответ Создать тему
Опции темы

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