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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 23, средняя оценка - 4.78
Wera
1 / 1 / 0
Регистрация: 21.07.2010
Сообщений: 11
#1

Делители числа - C++

23.07.2010, 21:56. Просмотров 3254. Ответов 16
Метки нет (Все метки)

надо написать программу что находит количество делителей каждого из целых чисел до 120.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
using namespace std;
void main()
{
int i,x;
for (int i=1;i<120;i++)
{
for (x=i/2;x<120;)
{
cin>>i;
if(i/x==2)
{
cout<<x;
}
}
}
}

Выбивает ошибку на этапе выполнения :
Делители числа


в чем ошибка
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.07.2010, 21:56     Делители числа
Посмотрите здесь:

Определить являются ли два целых числа взаимно простыми ,если числа имеют общие делители - C++
Зравствуйте Люди знающие свое дело))) я студент первого курса и мало разбираюсь пока. Суть задания: Составить программу...

Вывести делители числа n - C++
Нужно вывести делители числа n, НО по три елемента в каждой сттроке. Помогите, пожалуйста)

Делители натурального числа - C++
Привет всем) завтра экзамен ... не могли бы помочь мне сделать задание? или хотя бы натолкнуть на мысль. буду благодарен Дано...

Найти все делители числа P - C++
Помогите студентке пожалуйста сделать задачу. Требуется найти все делители числа Р. Задачу я решила, но препод сказал сделать с...

Простые делители числа,задачка! - C++
Задача:Простые делители числа 13195 - это 5, 7, 13 и 29. Какой самый большой делитель числа 600851475143, являющийся простым числом? ...

Найти делители натурального числа - C++
Создать список делителей введенного с клавиатуры натурального числа и вывести его на экран. Вот пример программы со списком и основная...

Простые делители заданного числа - C++
Задача из сборника Златопольского 8.54*. Дано натуральное число n. Получить все простые делители этого числа #include &lt;iostream&gt; ...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
besstiaa
94 / 94 / 7
Регистрация: 04.06.2010
Сообщений: 223
23.07.2010, 22:18     Делители числа #2
Деление на 0.

Добавлено через 2 минуты
i = 1 изначально, x = 1/2, причем именно целочисленное деление, т.е. в x запишется только целая часть от деления, в данном случае 0. Ну а дальше... деление на ноль и ошибка.
neske
1479 / 846 / 75
Регистрация: 26.03.2010
Сообщений: 2,904
23.07.2010, 22:26     Делители числа #3
Ваш код не смотрел, написал свой.
Это требуется?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
 
int main (void)
{
    int cnt=0;
 
    for (int i=1; i<=120; i++) {
        cnt=0;
        for (int j=2; j<i; j++) // 1 и само число как делители не рассматриваются.
            if (!(i%j)) ++cnt;
        std::cout << i << ": " << cnt;
        std::cout << std::endl;
    }
 
    system ("pause");
    return 0;
}
Wera
1 / 1 / 0
Регистрация: 21.07.2010
Сообщений: 11
24.07.2010, 00:00  [ТС]     Делители числа #4
Спасибо !
Mr.X
Эксперт С++
3048 / 1693 / 265
Регистрация: 03.05.2010
Сообщений: 3,867
24.07.2010, 21:58     Делители числа #5
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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
///////////////////////////////////////////////////////////////////////////
//Надо написать программу, которая находит количество делителей 
//каждого из целых чисел до 120.
///////////////////////////////////////////////////////////////////////////
#include <algorithm>
#include <iomanip>
#include <iostream>
#include <vector>
///////////////////////////////////////////////////////////////////////////
typedef std::vector<int>  T_int_vect;
///////////////////////////////////////////////////////////////////////////
struct T_generate_podryad_ot
{
    int i_;
    T_generate_podryad_ot(int i): i_(i)
    {}
 
    int operator() ()
    {
        return i_++;
    }
};
///////////////////////////////////////////////////////////////////////////
class T_print_colich_deliteley
{
    //---------------------------------------------------------------------
    enum
    {
        MAX_NUM = 1000
    };
    //---------------------------------------------------------------------
    struct T_delit
    {
        int delimoe_;
        T_delit(int delimoe) : delimoe_(delimoe)
        {}
        bool operator () (int delitel)
        {
            bool delit = (delimoe_ % delitel == 0);
            if(delit)
            {
                std::cout << delitel
                          << ' ';
            }
            return  delit;           
        }
    };
    //---------------------------------------------------------------------
    T_int_vect  int_vect_;
    //---------------------------------------------------------------------
public:
    //---------------------------------------------------------------------
    T_print_colich_deliteley() : int_vect_(MAX_NUM) 
    {
        std::generate(int_vect_.begin(), int_vect_.end(), T_generate_podryad_ot(1));    
    }
    //---------------------------------------------------------------------
    void print_colich_deliteley_otrezka(int right_bound)
    {
        std::for_each(int_vect_.begin(), int_vect_.begin() + right_bound,
                      T_print_colich_deliteley());        
    }
    //---------------------------------------------------------------------
    int  count_deliteli(int num)
    {        
        return std::count_if(int_vect_.begin(), int_vect_.begin() + num,
                             T_delit(num));                                  
    }
    //---------------------------------------------------------------------
    void operator() (int num)
    {
        std::cout << std::endl
                  << '\t'
                  << "-> всего "
                  << std::setw(2)
                  << count_deliteli(num) - (num == 1 ? 1 : 2)
 
                  << " (без 1 и самого числа)"                  
                  << std::endl;
    }
    //---------------------------------------------------------------------
};
///////////////////////////////////////////////////////////////////////////
int main()
{
    std::locale::global(std::locale(""));
    T_print_colich_deliteley().print_colich_deliteley_otrezka(120);
    return 0;
}
neske
1479 / 846 / 75
Регистрация: 26.03.2010
Сообщений: 2,904
24.07.2010, 22:05     Делители числа #6
Mr.X, к чему такие сложности ?)
Mr.X
Эксперт С++
3048 / 1693 / 265
Регистрация: 03.05.2010
Сообщений: 3,867
24.07.2010, 22:43     Делители числа #7
Цитата Сообщение от neske Посмотреть сообщение
Mr.X, к чему такие сложности ?)
Вообще-то для тренировки в применении алгоритмов. Что-то здесь действительно код получился длиннее, чем казалось на первый взгляд. Но если учесть, что в реальном программировании все такие функторы должны уже быть в библиотеке, то ситуация полегче.
CyBOSSeR
24.07.2010, 22:58
  #8

Не по теме:

Mr.X, только постарайтесь не использовать транслит. Это плохая привычка.

Mr.X
Эксперт С++
3048 / 1693 / 265
Регистрация: 03.05.2010
Сообщений: 3,867
25.07.2010, 00:07     Делители числа #9
Цитата Сообщение от CyBOSSeR Посмотреть сообщение

Не по теме:

Mr.X, только постарайтесь не использовать транслит. Это плохая привычка.

Замечание справедливое. Кстати, Visual Studio 2008 поддерживает имена функций на кириллице. Интересно, как с этим у других компиляторов, и пользуется ли кто-либо этой возможностью?
M128K145
Эксперт С++
8284 / 3503 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
25.07.2010, 01:27     Делители числа #10
Mr.X, а уж кириллицу и подавно использовать нельзя(не желательно - слишком мягко сказано)
Mr.X
Эксперт С++
3048 / 1693 / 265
Регистрация: 03.05.2010
Сообщений: 3,867
25.07.2010, 12:14     Делители числа #11
Цитата Сообщение от M128K145 Посмотреть сообщение
Mr.X, а уж кириллицу и подавно использовать нельзя(не желательно - слишком мягко сказано)
А можете обосновать это ваше мнение?
CyBOSSeR
Эксперт C++
2300 / 1670 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
25.07.2010, 14:21     Делители числа #12
Цитата Сообщение от Mr.X Посмотреть сообщение
А можете обосновать это ваше мнение?
1. Не все программисты в мире знают русский. Но практически все английский.
2. Программист C++ использующий транслит, а уж тем более кириллицу работодателю не нужен.
Хохол
Эксперт C++
475 / 443 / 13
Регистрация: 20.11.2009
Сообщений: 1,292
25.07.2010, 14:23     Делители числа #13
Цитата Сообщение от Mr.X Посмотреть сообщение
А можете обосновать это ваше мнение?
думаю, код, понятный практически любому программисту мира, это куда круче, чем понятный лишь русскому.
Mr.X
Эксперт С++
3048 / 1693 / 265
Регистрация: 03.05.2010
Сообщений: 3,867
25.07.2010, 16:33     Делители числа #14
Цитата Сообщение от CyBOSSeR Посмотреть сообщение
1. Не все программисты в мире знают русский. Но практически все английский.
2. Программист C++ использующий транслит, а уж тем более кириллицу работодателю не нужен.
Так оно всегда и бывает: упустишь интеллектуальную инициативу – будешь учить тарабарский. Спасибо, пока еще на форумах дозволяют сообщения писать на русском, да еще и на кириллице.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.07.2010, 17:41     Делители числа
Еще ссылки по теме:

Вывести все делители числа - C++
Нужно вывести все делители числа сначала сделать проверку, является ли оно целым но после цикла делители не выводятся на консоль ...

Элементарные делители натурального числа - C++
есть натуральное число n. Получить все элементарные делители этого числа.

Найти все делители натурального числа n - C++
Всем Привет ! Нужно написать прогу с использованием пользовательских функций. И пожалуйста облегчите мне задачу ) укажите строки с...

Получить все простые делители числа - C++
Здравствуйте, помогите, пожалуйста. Дано целое число n. Получить все простые делители этого числа.

Вывести все простые делители числа - C++
Люди помогите с лабами до субботы надо сдать!!! 1. Ввести целое число N. Вывести все простые делители этого числа. 2. Ввести строку...


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

Или воспользуйтесь поиском по форуму:
CyBOSSeR
Эксперт C++
2300 / 1670 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
25.07.2010, 17:41     Делители числа #15
Цитата Сообщение от Mr.X Посмотреть сообщение
Так оно всегда и бывает: упустишь интеллектуальную инициативу – будешь учить тарабарский. Спасибо, пока еще на форумах дозволяют сообщения писать на русском, да еще и на кириллице.
Mr.X, английский - язык международного общения. Нравится тебе это или нет. И никакие абсолютно бесполезные рассуждения о интелектуальных инициативах ничего не изменят.
Если уж ты принципиальный патриот - можешь переквалифицироватся в 1С программиста и пиши на кириллице на здоровье.

Не по теме:

Только вот, код с кириллицей, на мой взгляд, выглядит жутковато.

Yandex
Объявления
25.07.2010, 17:41     Делители числа
Ответ Создать тему
Опции темы

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