Допустим у тебя дано число 1001101 (в бинарной си), чтобы перевести ее в десятичную си нужно: 1) Расставить коэффициенты 0,1,2,3 начиная с последней цифры в двоичной записи. В итоге у тебя получаться такие коэффициенты над числами: 1^6, 0^5, 0^4, 1^3, 1^2, 0^1, 1^0. 2) Теперь умножим каждое число в бинарной си на основание двоичной си (двойка) в той степени, которой ты посчитал. Т.е.: 1*2^6, 0*2^5 и так далее. 3) Затем остается только сложить полученные числа из второго шага и ты получишь число в десятичной си
Ольга
26.04.2020
1. Вот так это пишется с функцией
// PascalABC.NET 3.1, сборка 1200 от 13.03.2016 function IsPrime(n:integer):boolean; begin if n<4 then Result:=True else begin var found:= (n mod 2 = 0); var p:=3; while (not found) and (sqr(p)<=n) do begin found:=(n mod p = 0); p+=2 end; Result:=not found end end;
begin Writeln('k=',ArrRandom(ReadInteger('n='),1,999).Println. Where(x->IsPrime(x)).Count) end.
// PascalABC.NET 3.1, сборка 1200 от 13.03.2016 procedure IsPrime(n:integer; var res:boolean); begin if n<4 then res:=True else begin var found:= (n mod 2 = 0); var p:=3; while (not found) and (sqr(p)<=n) do begin found:=(n mod p = 0); p+=2 end; res:=not found end end;
begin var a:=ArrRandom(ReadInteger('n='),1,999); a.Println; var k:=0; var prime:boolean; foreach var e in a do begin IsPrime(e,prime); if Prime then Inc(k) end; Writeln('k=',k) end.
1) Расставить коэффициенты 0,1,2,3 начиная с последней цифры в двоичной записи. В итоге у тебя получаться такие коэффициенты над числами: 1^6, 0^5, 0^4, 1^3, 1^2, 0^1, 1^0.
2) Теперь умножим каждое число в бинарной си на основание двоичной си (двойка) в той степени, которой ты посчитал.
Т.е.: 1*2^6, 0*2^5 и так далее.
3) Затем остается только сложить полученные числа из второго шага и ты получишь число в десятичной си