Условие
Определить все возможные значения произведения [latex]i\cdot j[/latex], если целочисленные значения переменных [latex]i[/latex] и [latex]j[/latex] меняются соответственно [latex]i[/latex] от [latex]a[/latex] до [latex]b[/latex] и [latex]j[/latex] от [latex]c[/latex] до [latex]d[/latex] ([latex]1\leq a,b,c,d\leq 10[/latex]).
Входные данные
В одной строке заданы 4 числа [latex]a,b,c,d[/latex] ( [latex]a[/latex] может быть больше [latex]b[/latex], [latex]c[/latex] может быть больше [latex]d[/latex] ).
Выходные данные
Вывести количество возможных вариантов произведения.
Код
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 |
#include <iostream> using namespace std; int main() { int a,b,c,d; int p,pmin,pmax,j,imin,imax,jmin,jmax; int rez,flag; cin >>a>>b>>c>>d; if (a<b) { imin=a; imax=b; } else { imin=b; imax=a; } if (c<d) { jmin=c; jmax=d; } else { jmin=d; jmax=c; } pmin=imin*jmin; pmax=imax*jmax; rez=0; for (p=pmin; p<=pmax; p++) { flag=0; for (int i=imin; i<=imax;i++) { j=p/i; if ((p%i==0) && (j>=jmin) && (j<=jmax)) flag=1; } if (flag==1) rez=rez+1; } cout << rez; return 0; } |
Тестирование
№ | Входные данные | Выходные данные |
1 | 1 10 1 10 | 42 |
2 | 7 2 4 1 | 18 |
3 | 2 7 1 4 | 18 |
4 | 3 9 2 4 | 16 |
Решение
Для нахождения всех возможных результатов произведения без повторений [latex]i\cdot j[/latex] будем проверять каждое число [latex] p [/latex] (которое находится в диапазоне от произведения минимальных значений [latex] i [/latex] и [latex] j [/latex] до произведения их максимальных значений) на то, возможно ли его получить при помощи данного произведения. Если получить число хотя бы один раз, перемножив [latex] i [/latex] и [latex] j [/latex], реально,тогда значению [latex] flag [/latex] присваиваем 1. Если [latex] flag [/latex] присваивается 1, тогда [latex] rez [/latex] увеличивается на 1. В результате выводим итоговое [latex] rez [/latex].
Ссылки
- Условие задачи на E-Olymp;
- Код программы на Ideone.com;
- Подтверждение решения на E-Olymp.