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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 22, средняя оценка - 4.82
SunCore
0 / 0 / 0
Регистрация: 17.03.2010
Сообщений: 7
18.05.2010, 11:40     Найти все натуральные числа, которые не превышают заданного N и деляться на каждую из своих цифр #1

Не по теме:

Знайти всі натуральні числа, які не перевищують заданого n і діляться на кожну зі
своїх цифр (в десятковій системі числення)



Найти все натуральные числа, которые не превышают заданного N и деляться на каждую из своих цифр.

Заранее спасибо.

Если можно - только сам кусок кода, находящий цифры. остальное я бы и сам написал.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.05.2010, 11:40     Найти все натуральные числа, которые не превышают заданного N и деляться на каждую из своих цифр
Посмотрите здесь:

Найти все натуральные числа, не превосходящие заданного n, которые делятся на каждую из своих цифр C++
C++ Найти все натуральные числа, не превышающие заданного N, которые делятся на каждую из своих цифр.
C++ Найти все натуральные числа, не превосходящие заданного n, которые делятся на каждую из своих цифр
Найти все натуральные числа,не превосходящие заданного n,которые делятся на каждую из своих цифр. C++
C++ Найти все натуральные числа, не превосходящие заданного п, которые делятся на каждую из своих цифр.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
cibertronic
 Аватар для cibertronic
255 / 142 / 13
Регистрация: 27.12.2009
Сообщений: 893
18.05.2010, 11:58     Найти все натуральные числа, которые не превышают заданного N и деляться на каждую из своих цифр #2
посмотри тут http://www.cyberforum.ru/visual-cpp/thread13134.html
и тут как пишется формула
coderXLsn
 Аватар для coderXLsn
49 / 49 / 1
Регистрация: 16.05.2010
Сообщений: 348
18.05.2010, 12:20     Найти все натуральные числа, которые не превышают заданного N и деляться на каждую из своих цифр #3
или тут
SunCore
0 / 0 / 0
Регистрация: 17.03.2010
Сообщений: 7
18.05.2010, 16:13  [ТС]     Найти все натуральные числа, которые не превышают заданного N и деляться на каждую из своих цифр #4
К сожалению, мне не простые числа надо.

Есть число, допустим 128, нужно проверить, делиться ли оно нацело на свои числа. т.е. на 1, 2, 8. Если делиться - вывести его на экран.
cibertronic
 Аватар для cibertronic
255 / 142 / 13
Регистрация: 27.12.2009
Сообщений: 893
18.05.2010, 16:42     Найти все натуральные числа, которые не превышают заданного N и деляться на каждую из своих цифр #5
помоему тут остатком от деления надо....

Не по теме:

ща не могу точно сказать, с чужого компа зашел

alex_x_x
бжни
 Аватар для alex_x_x
2441 / 1646 / 84
Регистрация: 14.05.2009
Сообщений: 7,163
18.05.2010, 18:29     Найти все натуральные числа, которые не превышают заданного N и деляться на каждую из своих цифр #6
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
const int N = 1000;
 
 
int main(){
bool bIsDiv = true;
for( int i=1;i<=N;++i ){
  bIsDiv = true;
  for( int j=1;(i / j) % 10;j*=10 ){
    if( 0 != i % ((i / j) % 10 ) ){
        bIsDiv = false;
        break;
    }
  }
  if( true == bIsDiv ){
     std::cout << i << std::endl;
  }
}
  return 0;
}
Mr.X
Эксперт С++
 Аватар для Mr.X
2807 / 1583 / 248
Регистрация: 03.05.2010
Сообщений: 3,691
19.05.2010, 07:43     Найти все натуральные числа, которые не превышают заданного N и деляться на каждую из своих цифр #7
alex_x_x, ваш пример неверно работает с числами, имеющими ноль в середине. Например выводит 701, 702.
Мне кажется, если писать понятнее, то меньше ошибок.
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
//Найти все натуральные числа, которые не превышают заданного N и делятся 
//на каждую из своих цифр.
#include <iostream>
#include <sstream>
 
const int N = 702;
 
bool delitsja_na_vse_cifry(int num)
{
    std::stringstream potok;
    potok << num;
    char dig_symb;   
    while(potok >> dig_symb)          
    {
        int dig = dig_symb - '0';
        if(dig && num % dig != 0) return false;        
    }
    return true;
}
 
int main()
{
    for(int cur_num = 1; cur_num <= N; ++cur_num)
    {
        if(delitsja_na_vse_cifry(cur_num))
        {
            std::cout << cur_num << std::endl;
        }
    }
    return 0;
}
Добавлено через 9 часов 56 минут
Я в предыдущем примере ноль за отсутствие цифры посчитал. Наверно вот так будет правильнее:
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
//Найти все натуральные числа, которые не превышают заданного N и делятся 
//на каждую из своих цифр.
#include <iostream>
#include <sstream>
 
const int N = 702;
 
bool delitsja_na_vse_cifry(int num)
{
    std::stringstream potok;
    potok << num;
    char dig_symb;   
    while(potok >> dig_symb)          
    {
        int dig = dig_symb - '0';
        if(!dig || num % dig != 0) return false;          
    }
    return true;
}
 
int main()
{
    for(int cur_num = 1; cur_num <= N; ++cur_num)
    {
        if(delitsja_na_vse_cifry(cur_num))
        {
            std::cout << cur_num << std::endl;
        }
    }
    return 0;
}
Andronomed
0 / 0 / 0
Регистрация: 08.07.2015
Сообщений: 1
08.07.2015, 19:41     Найти все натуральные числа, которые не превышают заданного N и деляться на каждую из своих цифр #8
Натуральные числа
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
using namespace std;
int N=1000;
int main () {
bool Natural;
    for (int i = 1; i <= N; i++ )
    { 
        Natural = true;
        for (int x = 2; x < i; x++) if ( !( i%x ) ) Natural = false;
        if (Natural) cout << i << endl;
    }
return 0;
}
Добавлено через 22 минуты
А вот так количество выполненных команд будет меньше
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
using namespace std;
int N=1000;
int main () {
    int x;
    for ( int i = 1; i <= N; i++ )
    { 
        for ( x = 2; x < i; x++ ) if ( !(i%x) ) x = i + 1;
        if ( x == i ) cout << i << endl;
    }
return 0;
}
Добавлено через 1 час 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
#include <iostream> // для использования cout
using namespace std;
 
int N=100; // Последнее проверяемое число
int main () 
{
    int x; //Число на которое будем делить
    for ( int i = 1; i <= N; i++ ) //общий цикл
    { 
        for ( x = 2; x < i; x++ ) //цикл на что делить 
        {           
            if (!(i%x)) //если нет остатка от деления
            {
                x=i+1; // Делаем "x" болше "i" чтоб выйти из цикла
            }
        }
        if ( x == i ) // x будет равен i если цикл кончился сам
        {
            cout << i << endl; // Вывод в терминале
        }
    }
return 0;// Возврат main = 0 (0 - без ошибок)
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.07.2015, 03:01     Найти все натуральные числа, которые не превышают заданного N и деляться на каждую из своих цифр
Еще ссылки по теме:

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

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

Или воспользуйтесь поиском по форуму:
alex_x_x
бжни
 Аватар для alex_x_x
2441 / 1646 / 84
Регистрация: 14.05.2009
Сообщений: 7,163
13.07.2015, 03:01     Найти все натуральные числа, которые не превышают заданного N и деляться на каждую из своих цифр #9
Цитата Сообщение от Andronomed Посмотреть сообщение
if (!(i%x)) //если нет остатка от деления { x=i+1; // Делаем "x" болше "i" чтоб выйти из цикла }
break же
Yandex
Объявления
13.07.2015, 03:01     Найти все натуральные числа, которые не превышают заданного N и деляться на каждую из своих цифр
Ответ Создать тему
Опции темы

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