Имеется задача на Паскале. Нужно проверить ее на правильность и еще дописать, чтобы программа считала: кратно ли число двум,трем,четырем и шести по признакам делимости.program chislo;uses crt;var a,b,c,d,e,f,g:integer;beginclrs...

Имеется задача на Паскале. Нужно проверить ее на правильность и еще дописать, чтобы программа считала: кратно ли число двум,трем,четырем и шести по признакам делимости. program chislo; uses crt; var a,b,c,d,e,f,g:integer; begin clrscr; f:=1;d:=0; writeln('Введите число '); readln(a); e:=a; while e>9 do begin  b:= e mod 10; f:=f+1; d:=d+b; e:= e div 10; end; g:=e+d; writeln('Число ',f,' - значное'); if a mod 2<>0 then writeln('Число нечетное') else writeln('Число четное'); c:=b mod 10; if (c=0) or (c=5) then writeln ('Число кратно 5') else writeln ('Число не кратно 5'); if (c=0) then writeln('Число кратно 10') else writeln('Число не кратно 10'); if g mod 3=0 then writeln('Число кратно 3') else writeln('Число не кратно 3'); if g mod 9=0 then writeln ('Число кратно 9') else writeln('Число не кратно 9'); end.
Гость
Ответ(ы) на вопрос:
Гость
function two(i: integer): boolean; begin   two := (i mod 10 mod 2 = 0); end; function three(i: integer): boolean; var   buf, k: integer; begin   buf := i;   repeat     k := k + (buf mod 10);     buf := buf div 10;   until (buf = 0);   three := (k mod 3 = 0); end; function four(i: integer): boolean; begin   four := (i mod 100 mod 4 = 0); end; function six(i: integer): boolean; begin   six := (two(i) and (three(i))); end; function BooleanToString(i: boolean): string; begin   if (i) then     BooleanToString := 'Да'   else     BooleanToString := 'Нет'; end; var   i: integer; begin   readln(i);   writeln('2: ', BooleanToString(two(i)));   writeln('3: ', BooleanToString(three(i)));   writeln('4: ', BooleanToString(four(i)));   writeln('6: ', BooleanToString(six(i))); end.
Не нашли ответ?
Ответить на вопрос
Похожие вопросы