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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 22, средняя оценка - 4.82
SunCore
0 / 0 / 0
Регистрация: 17.03.2010
Сообщений: 7
#1

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

18.05.2010, 11:40. Просмотров 3335. Ответов 8
Метки нет (Все метки)

Не по теме:

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



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

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

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

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

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

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

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

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

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

8
cibertronic
256 / 143 / 13
Регистрация: 27.12.2009
Сообщений: 894
18.05.2010, 11:58 #2
посмотри тут http://www.cyberforum.ru/visual-cpp/thread13134.html
и тут как пишется формула
1
coderXLsn
49 / 49 / 1
Регистрация: 16.05.2010
Сообщений: 348
18.05.2010, 12:20 #3
или тут
1
SunCore
0 / 0 / 0
Регистрация: 17.03.2010
Сообщений: 7
18.05.2010, 16:13  [ТС] #4
К сожалению, мне не простые числа надо.

Есть число, допустим 128, нужно проверить, делиться ли оно нацело на свои числа. т.е. на 1, 2, 8. Если делиться - вывести его на экран.
0
cibertronic
256 / 143 / 13
Регистрация: 27.12.2009
Сообщений: 894
18.05.2010, 16:42 #5
помоему тут остатком от деления надо....

Не по теме:

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

0
alex_x_x
бжни
2449 / 1654 / 84
Регистрация: 14.05.2009
Сообщений: 7,162
18.05.2010, 18:29 #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;
}
1
Mr.X
Эксперт С++
3050 / 1695 / 265
Регистрация: 03.05.2010
Сообщений: 3,867
19.05.2010, 07:43 #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;
}
1
Andronomed
0 / 0 / 0
Регистрация: 08.07.2015
Сообщений: 1
08.07.2015, 19:41 #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 - без ошибок)
}
0
alex_x_x
бжни
2449 / 1654 / 84
Регистрация: 14.05.2009
Сообщений: 7,162
13.07.2015, 03:01 #9
Цитата Сообщение от Andronomed Посмотреть сообщение
if (!(i%x)) //если нет остатка от деления { x=i+1; // Делаем "x" болше "i" чтоб выйти из цикла }
break же
0
13.07.2015, 03:01
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.07.2015, 03:01
Привет! Вот еще темы с ответами:

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

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