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

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

Войти
Регистрация
Восстановить пароль
 
dimoncheg
10 / 10 / 2
Регистрация: 18.10.2012
Сообщений: 220
#1

Найти все натуральные числа от промежутка от 0 до 200. Проверить задачу - C++

05.12.2012, 15:12. Просмотров 655. Ответов 5
Метки нет (Все метки)

Найти все натуральные числа из промежутка от 1 до 200, у которых сумма делителей равна S (S вводить с клавиатуры).

Что-то попытался, но ответ пишет странный мягко говоря. Подскажите пожалуйста что-нибудь по этому поводу. Заранее спасибо.

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
#include <stdio.h> 
#include <stdlib.h> 
 
main() 
{ 
       int S,x, n,i;
printf("\n Введите S: "); 
 scanf("%d", &S); 
 
 
for (n = 1; n <= 200; n++){
    x=0;
    for (i = 1;i <= n; i++){
     
        if (n % i == 0){    
              x=x+i;
             
        } 
        if(S==x){ printf("%d\n", x);}
            }
}
 
system("pause");
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.12.2012, 15:12     Найти все натуральные числа от промежутка от 0 до 200. Проверить задачу
Посмотрите здесь:

Найти все натуральные числа из промежутка от 1 до 200. Проверить программу - C++
Здравствуйте. Пожалуйста подскажите в чем тут ошибка? Выдаёт неккоректный ответ. Найти все натуральные числа из промежутка от 1 до 200, у...

Найти все натуральные числа из промежутка от 1 до 200, у которых сумма четных делителей равна N (проверить) - C++
Найти все натуральные числа из промежутка от 1 до 200, у которых сумма четных делителей равна N #include &quot;stdafx.h&quot; #include...

Найти все натуральные числа из заданного промежутка, с заданным количеством делителей - C++
Найти все натуральные числа из промежутка от 1 до 200, у которых количество делителей равно N (N вводить с клавиатуры).

Найти все целые положительные числа a,b,c из промежутка - C++
3) Найти все целые положительные числа a,b,c из промежутка (0,100) такие что a^3+b^2=c^2. P.S. в первой и второй задаче желателен вод с...

Найти сумму целых чисел из промежутка от 1 до 200 - C++
Найти сумму целых чисел из промежутка от 1 до 200, у которых ровно 5 делителей.

Найти все целые числа из промежутка от 1 до 300, у которых пять делителей - C++
#include &lt;iostream&gt; #include&lt;conio.h&gt; using namespace std; int main() { int k,i,s=0; for (i=1; i&lt;=300;...

Найти все натуральные числа... - C++
Найти все натуральные числа, не превосходящие заданного числа N, десятичное представление которых строго возрастающая последовательность...

Из заданного промежутка найти все числа произведение цифр которых равно заданному - C++
Пользователь вводит х, a, b. Из промежутка от a до b найти все числа, произведение цифр которых по модулю дает х. #include...

8.27. Найти все целые числа из промежутка от 1 до 300 у которых ровно пять делителей - C++
8.27. Найти все целые числа из промежутка от 1 до 300 у которых ровно пять делителей.

Найти все натуральные числа a, b, с из интервала - C++
Найти все натуральные числа a, b, с из интервала от 1 до 20, для которых выполняется равенство: a*a+b*b=c*c.


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ps10n1ck
54 / 48 / 2
Регистрация: 10.11.2010
Сообщений: 132
05.12.2012, 15:41     Найти все натуральные числа от промежутка от 0 до 200. Проверить задачу #2
Найти все натуральные числа из промежутка от 1 до 200, у которых сумма делителей равна S
если я правильно понял, то это выглядит так:
промежуток: (1, 2, 3, 4, 5 .... 200]
в данном варианте сумма делителей если я правильно понял - разложение числа из промежутка на простые числа и проверка суммы этих простых чисел на равенство S?
dimoncheg
10 / 10 / 2
Регистрация: 18.10.2012
Сообщений: 220
05.12.2012, 15:52  [ТС]     Найти все натуральные числа от промежутка от 0 до 200. Проверить задачу #3
Цитата Сообщение от ps10n1ck Посмотреть сообщение
если я правильно понял, то это выглядит так:
промежуток: (1, 2, 3, 4, 5 .... 200]
в данном варианте сумма делителей если я правильно понял - разложение числа из промежутка на простые числа и проверка суммы этих простых чисел на равенство S?
Кажется да.. Я просто мягко говоря не очень силен в С++, мне тут один человечек помог и убежал, а я вот сижу и разбираюсь, и на ответ выводит всякую бяку. Целый час сижу и пытаюсь в суть проблемы вникнуть. Может можно по-другому реализовать?
ps10n1ck
54 / 48 / 2
Регистрация: 10.11.2010
Сообщений: 132
05.12.2012, 15:56     Найти все натуральные числа от промежутка от 0 до 200. Проверить задачу #4
постараюсь что-то придумать, пока алгоритма нормального не придумал, все что в голову приходит, это просто методом перебора, но это тупо =). В течении дня, появится свободное время - попробую реализовать что-то путное.
dimoncheg
10 / 10 / 2
Регистрация: 18.10.2012
Сообщений: 220
05.12.2012, 16:16  [ТС]     Найти все натуральные числа от промежутка от 0 до 200. Проверить задачу #5
Цитата Сообщение от ps10n1ck Посмотреть сообщение
постараюсь что-то придумать, пока алгоритма нормального не придумал, все что в голову приходит, это просто методом перебора, но это тупо =). В течении дня, появится свободное время - попробую реализовать что-то путное.
ваш ответ в теме уже что-то для меня значит, уже большое спасибо) теперь буду молиться чтобы мне или вам пришло в голову "что-то путное".
ps10n1ck
54 / 48 / 2
Регистрация: 10.11.2010
Сообщений: 132
08.12.2012, 15:20     Найти все натуральные числа от промежутка от 0 до 200. Проверить задачу #6
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
#include <iostream>
#include <vector>
#include <numeric>
 
using std::cout;
using std::cin;
using std::endl;
 
typedef unsigned int uint;
 
int main(){
  setlocale(LC_ALL, "Rus");
  uint S = 0;
  uint sum = 0;
 
  cout << "Введите сумму делителей: ";
  cin >> S;
 
  std::vector<int> v;
  std::vector<int> vsum;
  std::vector<int>::iterator i;
 
  for(uint i = 1; i <= S; ++i){
    for(uint j = 1; j <= i; ++j) {
      if(i%j == 0)
        v.push_back(j);
    }
  sum = std::accumulate(v.begin(), v.end(), 0);
  if(sum == S)
    vsum.push_back(i);
  v.erase(v.begin(), v.end());
  }
  
  if(vsum.size() > 0){
    cout << "Натуральные числа из промежутка у которых сумма делителей = " << S << endl;
    for(i = vsum.begin(); i != vsum.end(); ++i)
      cout << *i << " ";
    cout << endl;
  }
  else
    cout << "Промежуток не содержит натуральных чисел у которых сумма делителей = " << S << endl;
 
   
   system("pause");
return 0;
}
Yandex
Объявления
08.12.2012, 15:20     Найти все натуральные числа от промежутка от 0 до 200. Проверить задачу
Ответ Создать тему
Опции темы

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