В кодовом замке используются цифровые переключатели, стоящие цифры в десятичной системы счисления. Сколько минимум переключателей должен содержать замок,чтобы можно было предусмотреть не менее 100 000 различных комбинаций ?
На третьей строчке, видимо, ошибка, и вместо Вывод(x) на самом деле Ввод(x).
var x: integer; y: real; begin Readln(x); y := (10 + 2 * x) / (11 - x); Writeln(y); end.При x = 3 переменная y = 2Задание 3var number, resultNumber, i: integer; begin resultNumber := 1; for i := 1 to 3 do begin Readln(number); resultNumber := resultNumber * number; end; Writeln(resultNumber); end.Задание 4var a: integer; b, c: real; begin a := 3; b := -1.5; c := 6 - 2 * b; c := c - a; Writeln(c); end.Результатом вывода будет число 6Задание 5var x, y, z: integer; begin x := 8; y := 2; if (x > y) then z := x - y else z := y + x; Writeln(z); end.
#include<stdio.h> int main(){ int div[10001]; int i,d,n,x; long int p = 1;
for(i = 0; i < 10000; i++) div[i] = 1;
scanf("%d",&n); for(i = 0; i < n; i++){ scanf("%d",&x); d = 2; while(d <= x){ while(x%d == 0){ x /= d; div[d]++; } d++; } }
for(i = 0; i < 10000; i++) p *= div[i]; printf("%ld",p); return 0; }
/* Небольшое пояснение: Идея решения заключается в том, что любой делитель результата представим как произведение простых чисел в определенных степенях. Тогда набор этих степеней однозначно определяет соответствующий делитель. Максимальная степень, с которой может быть взято простое число, является суммой степеней, с которыми оно входит в множители. Для простоты массив вхождений делителей задан от 0 до 10000, но т.к. перебор делителей множителей идет по возрастанию, учтены будут только простые делители.
Пример: 10 * 8 * 9 = 720
10 = 2^1*5^2 8 = 2^3 9 = 3^2
Т.е. число 2 входит в произведение в четвертой степени, 3 - во второй, 5 - в первой.
Значит любой делитель числа 720 представим (единственным образом) в виде 2^(d2) * 3^(d3) * 5^(d5), где d2 = 0..4, d3 = 0..2, d5 = 0..1
На третьей строчке, видимо, ошибка, и вместо Вывод(x) на самом деле Ввод(x).
var x: integer; y: real; begin Readln(x); y := (10 + 2 * x) / (11 - x); Writeln(y); end.При x = 3 переменная y = 2Задание 3var number, resultNumber, i: integer; begin resultNumber := 1; for i := 1 to 3 do begin Readln(number); resultNumber := resultNumber * number; end; Writeln(resultNumber); end.Задание 4var a: integer; b, c: real; begin a := 3; b := -1.5; c := 6 - 2 * b; c := c - a; Writeln(c); end.Результатом вывода будет число 6Задание 5var x, y, z: integer; begin x := 8; y := 2; if (x > y) then z := x - y else z := y + x; Writeln(z); end.