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

Определить количество четных и нечетных делителей числа - C++

Восстановить пароль Регистрация
 
krexx
-8 / 0 / 0
Регистрация: 23.01.2011
Сообщений: 52
20.12.2011, 13:48     Определить количество четных и нечетных делителей числа #1
Условие:
Задано число P определить количество его четных и нечетных делителей.
Задачу надо решить с помощью циклов.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.12.2011, 13:48     Определить количество четных и нечетных делителей числа
Посмотрите здесь:

Найти количество делителей натурального числа. Сколько из них четных C++
Даны числа а и b: определить, какое из чисел имеет большее количество делителей C++
Найти количество нечетных делителей натурального числа, больших К C++
Найти количесво нечетных делителей натурального числа C++
C++ Помогите разобраться: Найти количество четных делителей натурального числа.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
go
Эксперт C++
3582 / 1362 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
20.12.2011, 14:18     Определить количество четных и нечетных делителей числа #2
Делаете два счетчика
Проходите в цикле от i = 1 до числа
- если остаток от деления на i == 0
То проверяете на четность, и увеличиваете соответствующий счетчик.
krexx
-8 / 0 / 0
Регистрация: 23.01.2011
Сообщений: 52
20.12.2011, 14:21  [ТС]     Определить количество четных и нечетных делителей числа #3
Напишите программу полностью плз.
go
Эксперт C++
3582 / 1362 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
20.12.2011, 14:28     Определить количество четных и нечетных делителей числа #4
Цитата Сообщение от krexx Посмотреть сообщение
Задано число P определить количество его четных и нечетных делителей.
Если хотите, чтобы за Вас сделали, укажите полностью условие. Каких делителей, натуральных, или нет.
Ведь число 4 имеет 3 натуральных и 6 если объединить с отрицательными, т.е. из области Z
alkagolik
 Аватар для alkagolik
1510 / 616 / 79
Регистрация: 15.07.2011
Сообщений: 3,552
20.12.2011, 14:53     Определить количество четных и нечетных делителей числа #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
#include <stdio.h>
#include <stdlib.h>
#include <assert.h> // для функций isvalid, isnovalid
#include <stdint.h>
 
int isvalid( int p){
    int i = 2, cnt = 0;
    if ( p % i )
        return ( !( p % i ) || !p );
    else
        while ( i <= (p / 2) )
            cnt += !( p % ( i += 2 ) );
    return ++cnt;
}
 
int isnovalid( int p ){
    int i = 3, cnt = 1;
    while ( i <= ( p / 3) )
        cnt += !( p % ( i += 2 ) );
    return ++cnt;
}
 
int main()
{
    int P = 12;
    puts("четных делителей");
    printf("%i\n", isvalid(P));
    puts("нечетных делителей");
    printf("%i\n", isnovalid(P));
    return 0;
}
go
Эксперт C++
3582 / 1362 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
20.12.2011, 14:56     Определить количество четных и нечетных делителей числа #6
Цитата Сообщение от Net_Wanderer Посмотреть сообщение
i <= n
Ну уже бы
C
1
i <= n / 2
Столько лишних итераций делать, в конце просто добавили бы
C
1
(n & 1) ? ocnt++ : ecnt++;
Например, Если число 10000, то это 5000 лишних итераций, а если число равно миллионам и т.д.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.12.2011, 15:14     Определить количество четных и нечетных делителей числа
Еще ссылки по теме:

C++ Определить количество четных делителей числа
C++ Определить количество делителей заданного числа
Определить К - количество делителей натурального числа N C++

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

Или воспользуйтесь поиском по форуму:
alkagolik
 Аватар для alkagolik
1510 / 616 / 79
Регистрация: 15.07.2011
Сообщений: 3,552
20.12.2011, 15:14     Определить количество четных и нечетных делителей числа #7
Сообщение было отмечено автором темы, экспертом или модератором как ответ
кстати там ошибко, надо так переделать
C
1
2
3
4
5
6
7
8
9
10
11
12
13
int isvalid( int p){
    int i = 2, cnt = ( p % 2 ) ? 0 : 1;
    while ( i <= (p / 2) )
        cnt += !( p % ( i += 2 ) );
    return ( p % 2 ) ? cnt : ++cnt;
}
 
int isnovalid( int p ){
    int i = 3, cnt = 1;
    while ( i <= ( p / 3) )
        cnt += !( p % ( i += 2 ) );
    return ( p % 2 ) ? ++cnt : cnt;
}
короче доделал как надо
Yandex
Объявления
20.12.2011, 15:14     Определить количество четных и нечетных делителей числа
Ответ Создать тему
Опции темы

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