Найдите число двоек в этом разложении
Автор Ксюнечка* задал вопрос в разделе Другие языки и технологии
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
И что собственно за вопрос? это программа? Или непонятно суть задания?? ? Если непонятно суть задания, то как-то так: Хм.. . Натуральное число к примеру 50 Раскладываем на простые множители - 2*5*5 В строке количество двоек 2...
на чем кодить?