Найдите количество всех: а)двузначных чисел; б)двузначных чисел,состоящих из разных цифр; в)двузначных чисел,сумма цифр которых больше 16; г)двузначных чисел,произведение цифр которых меньше 2.
1 var a:array [1..10] of integer; 2 i,k,l:integer; 3 4 begin 5 randomize; 6 for i:=1 to 10 do 7 a[i]:=random(50)-10; 8 for i:=1 to 10 do 9 write(a[i],' '); 10 for i:=1 to 10 do 11 12 while a[i]>=10 do 13 begin 14 a[i]:=a[i] mod 10; 15 k:=k+1; 16 if k=1 then begin 17 l:=l+1; 18 k:=0; 19 end; 20 end; 21 writeln; 22 writeln(l); 23 readln; 24 end.
Понятно, что речь идет либо о числе 1000 (т.к. 1000*(1+0+0+0)=1000), либо о трёхзначном, либо о двухзначном числе. Таким образом либо (100а+10в+с)*(а+в+с)=1000, либо (10а+в)*(а+в)=1000=2³*5³. Понятно, также, что наши множители краны степеням 2 и 5. Итак, в первом случае, трёхзначное число должно быть менее 500 (т.к. 1000/2=500), но 2 в сумме могут дать либо 1 и 1, либо 2 и 0. Оба варианта нам не подходят. Далее, число должно быть не более 250 (т.к. 1000 не делится на 3 и 1000/4=250). Это могут быть варианты 1, 1 и 2 или 2 и 2, или 4, 0 и 0 . Но и это варианты не дают ответа (112*4≠1000, 121*4≠1000 и т.д.). Далее, трёхзначное число не может быть более 200 (1000/5=200), Если сумма цифр числа 5, то это могут быть комбинации из 1, 1 и 3 или 1,2 и 2. (не 113, не 131, 122 не подходят). Сумма чисел не может быть равна 6 или 7, т.к. они не являются делителями 1000. Итак, число не может превышать 125. Очевидно, что число 125 = 5*5*5 нас устраивает, т.к.125*(1+2+5)=125*8=1000. Далее, сумма чисел не может быть равна 9, 10, 11, 12, 13, 14,15 , 16, 17, 18, 19. При делении 1000/20=50, остаётся исследовать числа до 32 (32*32=1024). Но сумма чисел не может быть более 9*3=27. Итак 21, 22, 23, 24, 26, 27, 28, 29,30 нас не устраивают, так как не являются делителями числа 1000. 1000/25 =40, т.е. не существует таких сиел. ответ: 1000 и 125
Понятно, что речь идет либо о числе 1000 (т.к. 1000*(1+0+0+0)=1000), либо о трёхзначном, либо о двухзначном числе. Таким образом либо (100а+10в+с)*(а+в+с)=1000, либо (10а+в)*(а+в)=1000=2³*5³. Понятно, также, что наши множители краны степеням 2 и 5. Итак, в первом случае, трёхзначное число должно быть менее 500 (т.к. 1000/2=500), но 2 в сумме могут дать либо 1 и 1, либо 2 и 0. Оба варианта нам не подходят. Далее, число должно быть не более 250 (т.к. 1000 не делится на 3 и 1000/4=250). Это могут быть варианты 1, 1 и 2 или 2 и 2, или 4, 0 и 0 . Но и это варианты не дают ответа (112*4≠1000, 121*4≠1000 и т.д.). Далее, трёхзначное число не может быть более 200 (1000/5=200), Если сумма цифр числа 5, то это могут быть комбинации из 1, 1 и 3 или 1,2 и 2. (не 113, не 131, 122 не подходят). Сумма чисел не может быть равна 6 или 7, т.к. они не являются делителями 1000. Итак, число не может превышать 125. Очевидно, что число 125 = 5*5*5 нас устраивает, т.к.125*(1+2+5)=125*8=1000. Далее, сумма чисел не может быть равна 9, 10, 11, 12, 13, 14,15 , 16, 17, 18, 19. При делении 1000/20=50, остаётся исследовать числа до 32 (32*32=1024). Но сумма чисел не может быть более 9*3=27. Итак 21, 22, 23, 24, 26, 27, 28, 29,30 нас не устраивают, так как не являются делителями числа 1000. 1000/25 =40, т.е. не существует таких сиел. ответ: 1000 и 125
2 i,k,l:integer;
3
4 begin
5 randomize;
6 for i:=1 to 10 do
7 a[i]:=random(50)-10;
8 for i:=1 to 10 do
9 write(a[i],' ');
10 for i:=1 to 10 do
11
12 while a[i]>=10 do
13 begin
14 a[i]:=a[i] mod 10;
15 k:=k+1;
16 if k=1 then begin
17 l:=l+1;
18 k:=0;
19 end;
20 end;
21 writeln;
22 writeln(l);
23 readln;
24 end.