Другие языки программирования и технологии

1.Найти количество двоек в разложении натурального числа М на простые множители.

Решение в QBasic
INPUT "Введите М: "; M
c = 0
DO WHILE M MOD 2 = 0
M = M / 2
c = c + 1
LOOP
PRINT "Кол-во двоек = "; c
END

Решение в Pascal
var c,M:integer;
begin
write('Введите М: ');
readln(M);
c := 0;
while M mod 2 = 0 do begin
M := M div 2;
inc(c); {c := c + 1}
end;
writeln('Кол-во двоек = ',c);
readln
end.

Решение в С++
int main() {
int M,c;
cout << "Введите М: ";
cin >> M;
c = 0;
while ((M % 2) == 0)
{
M=M/2;
c++;
}
cout << endl << "Кол-во двоек = " << c << endl;
return 0}

В ассемблере вообще элементарно. Нужно посчитать количество младших нулей до первой встреченной единицы.
.model small
.386
.stack 100h
.data
M dd 18350080
C db ?
.code
begin:
mov ax,@data
mov ds,ax
mov eax,[ M ]
xor cl,cl
m1:
ror eax,1
jc m2
inc cl
jmp m1
m2:
mov [ C ],cl
; Вывод результата из переменной С
;...
mov ax,4c00h
int 21h
end begin
Ф-
Фотограф - Караганда
51 590
Лучший ответ
на чем кодить?
И что собственно за вопрос? это программа? Или непонятно суть задания?? ?

Если непонятно суть задания, то как-то так:
Хм.. .
Натуральное число к примеру 50
Раскладываем на простые множители - 2*5*5
В строке количество двоек 2...

Похожие вопросы