решить задачу
D - Обыкновенные дроби
Максимальное время работы на одном тесте: 2 секунды
Максимальный объем используемой памяти: 64 мегабайта
Имя входного файла: input.txt
Имя выходного файла: output.txt
Вам даны две обыкновенные дроби: A/B и C/D, с которыми нужно произвести арифметическое действие и представить результат в виде несокращаемой дроби или целого числа.
Числители целые и не превосходят 10⁹ по модулю.
Знаменатели целые, положительные и не превосходят 10⁹.
Входные данные
На единственной строке через пробел:
числитель первой дроби A,
знаменатель первой дроби B,
арифметическое действие, одно из:
add — сложить A/B и C/D,
subtract — из A/B вычесть C/D,
multiply — умножить A/B на C/D,
divide — разделить A/B на C/D.
числитель второй дроби C,
знаменатель второй дроби D.
Выходные данные
Единственное число, если результат — целое число.
Числитель и через пробел знаменатель результата, если результат — дробь.
int main()
{
setlocale( LC_ALL, "Russian" );
float X, SCALE_MAP, DISTANCE_M1;
std::cout << "Вычисление расстояния между населенными пунктами.\n\n";
std::cout << "Введите исходные данные: \n";
std::cout << "Масштаб карты (количество километров в одном сантиметре): ";
std::cin >> SCALE_MAP;
std::cout << "\nРасстояние между точками, изображающими населенные пункты (см): ";
std::cin >> DISTANCE_M1;
X = SCALE_MAP * DISTANCE_M1;
std::cout << "\nРасстояние между населенными пунктами: " << X << " км\n";
system("pause");
return 0;
}
var i,n,m,sum,pr,k,j:longint;
begin
sum:=0; pr:=1;
write('m: '); readln(m);
write('n: '); readln(n);
i:=2;
repeat
if m mod i = 0 then
begin
sum:=sum+i;
m:=m div i;
i:=2;
end
else inc(i);
until m=1;
writeln('Sum_M:', sum);
for i:=2 to n div 2 do
if n mod i = 0 then
begin
k:=2;
for j:=2 to i div 2 do
if i mod j = 0 then inc(k);
if (k>2)and(i mod 3 = 0 ) then
pr:=pr*i;
end;
writeln('Proizv_N:', pr);
if sum>pr then writeln('Da, sum prost del M > proizv sost del N')
else
writeln('Net, sum prost del M < proizv sost del N');
end.