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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 23, средняя оценка - 4.78
BOT
44 / 0 / 0
Регистрация: 26.10.2011
Сообщений: 115
09.03.2012, 12:03     Дано натуральное число N. Найти и вывести все числа в интервале от 1 до N-1, у которых произведение цифр совпадает с произведением цифр данного числа #1
Помогите, пожалуйста!!! А то у меня не получается( Написал программу, когда ввожу число 32 как в примере выводит только 16, а 6 и 23 не выводит(( Дано натуральное число N. Найти и вывести все числа в интервале от 1 до N–1, у которых произведение всех цифр совпадает с произведением цифр данного числа. Если таких чисел нет, то вывести слово «нет». Пример. N = 32. Числа: 6, 16, 23.

Вот сама программа!!!

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream.h>
int main()
 
{
    int n = 0;
        int i;
        cout << "Enter number: ";
        cin >> i;
            for (int m = 2; m <= i; m += 2)
        n++;
    cout << "number of even numbers = " << n << endl;
    cin.get ();
        cin.get ();
    }
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.03.2012, 12:03     Дано натуральное число N. Найти и вывести все числа в интервале от 1 до N-1, у которых произведение цифр совпадает с произведением цифр данного числа
Посмотрите здесь:

C++ Найти числа из интервала от 1 до N-1, для которых произведение всех цифр совпадает с суммой
C++ Найти и вывести числа произведение цифр которых равно их сумме!
Циклические вычислительные процессы (Дано натуральное число N. Вывести на экран все шестизначные числа, сумма цифр которых равна N) C++
Дано натуральное число n. Нужно найти сумму цифр числа C++
C++ Найти все четырёхзначные числа, у которых сумма крайних цифр равна сумме средних цифр, а само число делится на 6 и 27
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Байт
 Аватар для Байт
13988 / 8819 / 1230
Регистрация: 24.12.2010
Сообщений: 15,975
09.03.2012, 12:55     Дано натуральное число N. Найти и вывести все числа в интервале от 1 до N-1, у которых произведение цифр совпадает с произведением цифр данного числа #2
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
int pc(int k)
{ int i, p;
  for(i=0, p=1; k>0; i++) {
     p *= (k%10);
     k /= 10;
  }  
  return p;
}
main()
{ int N, pN,px, i, is;
  cout<<'Введите N";
  cin >> N;
  pN = pc(N); 
  for(i=1, is=0; i<N; i++) 
    if (pc(i)==pN) {
      cout << i;
      is = 1;
    }
   if (is==0) cout<< "Нет";
}
Добавлено через 2 минуты
px - не нужен. Обошелся без него
panicwassano
591 / 559 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
09.03.2012, 12:56     Дано натуральное число N. Найти и вывести все числа в интервале от 1 до N-1, у которых произведение цифр совпадает с произведением цифр данного числа #3
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
#include <cstdlib>
#include <iostream>
using namespace std;
 
int mult(int n);
 
int main()
{
    setlocale(LC_ALL, "");
    int number;
    
    cout << "Введите натуральное число: " << endl;
    cin >> number;
 
    bool find = false;
    for (int i = 1; i < number; i++)
    {
        if (mult(i) == mult(number))
        {
            find = true;
            cout << i << endl;
        }
 
    }
 
    if(!find)
    {
        cout << "Такие числа не найдены!" << endl;
    }
 
    return EXIT_SUCCESS;
}
 
int mult(int n)
{
    int temp = 1;
    while (int i = n % 10)
    {
        temp *= i;
        n /= 10;
    }
 
    return temp;
}
stawerfar
 Аватар для stawerfar
141 / 55 / 4
Регистрация: 14.12.2010
Сообщений: 347
Записей в блоге: 1
23.04.2012, 20:50     Дано натуральное число N. Найти и вывести все числа в интервале от 1 до N-1, у которых произведение цифр совпадает с произведением цифр данного числа #4
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
#include<iostream>
 
int main(void)
{
    setlocale(LC_ALL,"Russian_Russia.1251");
 
int inum;//вводимое число
 
   while(true)//продолжать цикл пока пользователь не введет безошибочные данные
   {
    std::cout<<"Введите число :";
    std::cin.unsetf(std::ios::skipws);//неигнорировать пробелы
    std::cin>>inum;
 
    if(std::cin.good())//если ошибок нет
    {
        std::cin.ignore(100,'\n');//удалить лишние символы из потока
        break;
    }
    std::cin.clear();//сброс потока
    std::cin.ignore(100,'\n');//удалить лишние символы
    std::cerr<<"Ошибка. Недопустимое значение!"<<std::endl;
   }
 
   int** mas=new int*[inum];//создать массив нужного размера
   for(int i=0;i<inum;i++)//выделение память под каждый элемент
    {
        *(mas+i)=new int;
        **(mas+i) = i+1;  //инициализация массива значениями от 1 до inum
   }
 
   char* chnum = new char [100]; //для хранения числа ввиде строки
   itoa(inum,chnum,10) ; //преобразовать число в массив символов
   int ires=1; //для хранения числа эталона например 32 = 3*2 = 6;
  
   //формирование числа эталона
   for(int i=0;i<strlen(chnum);i++)
   {
       char tempmas[2];//времменный массив для обмена
       tempmas[0]=chnum[i];
       tempmas[1]='\0';
       ires *= atoi(tempmas);
   }
   for(int i=0;i<inum;i++)//поиск элементов массива отвечающих условию задачи
   {
       for(int j=0;j<inum;j++)
       {
           if(*(mas[i])* *(mas[j]) == ires)
            {
                std::cout<<*(mas[i])<<'*'<<*(mas[j])<<" = "<<ires<<std::endl;
            }
 
       }
   }
   std::cout<<std::endl;
    delete []chnum;                                                                                         
   delete []mas;
 
    system("pause");
return 0;
}
Вот как то так
BOT
44 / 0 / 0
Регистрация: 26.10.2011
Сообщений: 115
23.04.2012, 20:58  [ТС]     Дано натуральное число N. Найти и вывести все числа в интервале от 1 до N-1, у которых произведение цифр совпадает с произведением цифр данного числа #5
Спасибо большое!!! Но мы ещё с массивами не работали. А нельзя ли как это с помощью циклов сделать?)) Просто меня препод не поймет) У меня просто не получается эту программу доработать, только одно значение вылазит(
stawerfar
 Аватар для stawerfar
141 / 55 / 4
Регистрация: 14.12.2010
Сообщений: 347
Записей в блоге: 1
23.04.2012, 21:14     Дано натуральное число N. Найти и вывести все числа в интервале от 1 до N-1, у которых произведение цифр совпадает с произведением цифр данного числа #6
Я не знаю, может и можно нужнен математический алгоритм, карказ!
programmer_11
94 / 69 / 5
Регистрация: 08.10.2011
Сообщений: 130
23.04.2012, 21:35     Дано натуральное число N. Найти и вывести все числа в интервале от 1 до N-1, у которых произведение цифр совпадает с произведением цифр данного числа #7
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
#include <iostream.h>
typedef unsigned long int ULONG;
typedef unsigned short int USHORT;
 
ULONG getP(USHORT t);
 
int main()
{
USHORT n,t;
cout << "Enter n ";
cin >> n;
cout << "\nEnter t";
cin >> t;
cout << endl;
if (n>1)
{
for (USHORT i=1;i<=n-1;i++)
{
if (getP(i)==getP(t))
cout << i << " ";
}
}
else
{
cout << "OSHIBKA!";
}
return 0;
}
 
ULONG getP(USHORT t)
{
ULONG p=1;
while(t<>0)
{
p*=t%10;
t=t/10;
}
return p;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.04.2012, 18:40     Дано натуральное число N. Найти и вывести все числа в интервале от 1 до N-1, у которых произведение цифр совпадает с произведением цифр данного числа
Еще ссылки по теме:

Ввести натуральное число n. Среди чисел 1,.,n найти все такие числа, запись которых совпадает с последними цифрами C++
Дано натуральное число N. Найти наименьшее число М (N< M< 2N), которое делится на сумму цифр числа N (без оста C++
C++ Дано двузначное натуральное число m. Получить все двузначные натуральные числа, сумма квадратов цифр которых р

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

Или воспользуйтесь поиском по форуму:
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
26.04.2012, 18:40     Дано натуральное число N. Найти и вывести все числа в интервале от 1 до N-1, у которых произведение цифр совпадает с произведением цифр данного числа #8
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <stdio.h>
 
unsigned natur_product(unsigned n) {
    return ( n ) ? n % 10 * natur_product(n / 10) : 1;
}
 
int main(void) {
    unsigned n;
    
    while ( printf("Number: ") && scanf("%u", &n) == 1 && n > 1 ) {
        unsigned i, cnt = 0, np = natur_product(n);
        for ( i = 1; i < n; ++i )
            if ( natur_product(i) == np && ++cnt )
                printf("%u\n", i);
        if ( ! cnt )
            printf("Nicht!\n");
        printf("\n");
    }
    
    return 0;
}
Yandex
Объявления
26.04.2012, 18:40     Дано натуральное число N. Найти и вывести все числа в интервале от 1 до N-1, у которых произведение цифр совпадает с произведением цифр данного числа
Ответ Создать тему
Опции темы

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