C++ Даны два числа n и m. Создайте двумерный массив A[n][m], заполните его таблицей умножения A[i][j]=i*j и выведите на экран. При этом нельзя использовать вложенные циклы, все заполнение массива должно производиться одним циклом.
Входные данные
Программа получает на вход два числа n и m – количество строк и столбцов, соответственно.
Выходные данные
Программа должна вывести полученный массив. Числа разделяйте одним пробелом.
Примеры
входные данные
3 3
выходные данные
0 0 0
0 1 2
0 2 4
240
293
Ответы на вопрос:
#include< stdio.h> int main(){ int div[10001]; int i,d,n,x; long int p = 1; for(i = 0; i < 10000; i++) div[i] = 1; scanf("%d",& n); for(i = 0; i < n; i++){ scanf("%d",& x); d = 2; while(d < = x){ while(x%d == 0){ x /= d; div[d]++; } d++; } } for(i = 0; i < 10000; i++) p *= div[i]; printf("%ld",p); return 0; } /* небольшое пояснение: идея решения заключается в том, что любой делитель результата представим как произведение простых чисел в определенных степенях. тогда набор этих степеней однозначно определяет соответствующий делитель. максимальная степень, с которой может быть взято простое число, является суммой степеней, с которыми оно входит в множители. для простоты массив вхождений делителей задан от 0 до 10000, но т.к. перебор делителей множителей идет по возрастанию, учтены будут только простые делители. пример: 10 * 8 * 9 = 720 10 = 2^1*5^2 8 = 2^3 9 = 3^2 т.е. число 2 входит в произведение в четвертой степени, 3 - во второй, 5 - в первой. значит любой делитель числа 720 представим (единственным образом) в виде 2^(d2) * 3^(d3) * 5^(d5), где d2 = 0..4, d3 = 0..2, d5 = 0..1 например, 1 = 2^0 * 3^0 * 5^0, 720 = 2^4 * 3^2 * 5^1 есть 5 способов выбрать d2 (0,1,2,3,4), 3 способа выбрать d3 и 2 способа выбрать d5 --> всего 5 * 3 * 2 = 30 возможных наборов --> 30 делителей у числа 720 (если какое-то число не появляется среди делителей множителей, то его можно взять только одним способом - со степенью 0 - что не влияет на ответ) */
Реши свою проблему, спроси otvet5GPT
-
Быстро
Мгновенный ответ на твой вопрос -
Точно
Бот обладает знаниями во всех сферах -
Бесплатно
Задай вопрос и получи ответ бесплатно
Популярно: Информатика
-
даниял0906200718.01.2022 09:59
-
таня202325.07.2021 08:20
-
Kaishuudee22.12.2020 19:08
-
Nikitos22845621.05.2022 02:05
-
ravil86309.06.2023 13:23
-
mayzernik27.08.2020 22:37
-
лерчик125327.08.2020 15:54
-
Tbdtbd01.11.2021 11:52
-
meloo117.05.2021 13:25
-
Dariu11121.09.2020 15:34
Есть вопросы?
-
Как otvet5GPT работает?
otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса. -
Сколько это стоит?
Проект находиться на стадии тестирования и все услуги бесплатны. -
Могу ли я использовать otvet5GPT в школе?
Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое! -
В чем отличия от ChatGPT?
otvet5GPT черпает академические источники из собственной базы данных и предназначен специально для студентов. otvet5GPT также адаптируется к вашему стилю письма, предоставляя ряд образовательных инструментов, предназначенных для улучшения обучения.