XASSA
14.04.2023 11:32

Составить алгоритм на алгоритмическом языке для решения следующей задачи: Найти корни квадратного уравнения ax2 +bx+c = 0.

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
9872105
13.12.2020 23:30
#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

Например, 1 = 2^0 * 3^0 * 5^0, 720 = 2^4 * 3^2 * 5^1

Есть выбрать выбрать d3 и выбрать d5 --> всего 5 * 3 * 2 = 30 возможных наборов --> 30 делителей у числа 720

(если какое-то число не появляется среди делителей множителей, то его можно взять только одним со степенью 0 - что не влияет на ответ)
*/
0,0(0 оценок)
Ответ:
ЛимАнель
02.02.2022 15:15
Program task5; 
  var v:string; ch,p:integer; 
begin 
  writeln('Введите число');
  readln (ch); 
  case ch of 
    1: v:= ('один'); 
    2: v:= ('два'); 
    3: v:= ('три');
    4: v:= ('четыре');
    5: v:= ('пять');
    6: v:= ('шесть');
    7: v:= ('семь');
    8: v:= ('восемь');
    9: v:= ('девять');
    10: v:= ('десять'); 
    11: v:= ('одиннадцать');
    12: v:= ('двенадцать');
    13: v:= ('тринадцать');
    14: v:= ('четырнадцать');
    15: v:= ('пятнадцать');
    16: v:= ('шестнадцать');
    17: v:= ('семнадцать');
    18: v:= ('восемнадцать');
    19: v:= ('девятнадцать');
    20: v:= ('двадцать' );
    21,22,23,24,25,26,27,28,29: begin p:=(ch mod 10); v:= ('двадцать' ); end;
    30: v:= ('тридцать ');
    31,32,33,34,35,36,37,38,39: begin p:=(ch mod 10); v:= ('тридцать' ); end;
    40: v:= ('сорок');
    41,42,43,44,45,46,47,48,49: begin p:=(ch mod 10); v:= ('сорок' ); end;
    50: v:= ('пятьдесят ');
    51,52,53,54,55,56,57,58,59: begin p:=(ch mod 10); v:= ('пятьдесят' ); end;
    60: v:= ('шестьдесят '); 
    61,62,63,64,65,66,67,68,69: begin p:=(ch mod 10); v:= ('шестьдесят' ); end;
    70: v:= ('семьдесят ');
    71,72,73,74,75,76,77,78,79: begin p:=(ch mod 10); v:= ('семьдесят '); end;
    80: v:= ('восемьдесят '); 
    81,82,83,84,85,86,87,88,89: begin p:=(ch mod 10); v:= ('восемьдесят' ); end;
    90: v:= ('девяносто ');
    91,92,93,94,95,96,97,98,99: begin p:=(ch mod 10); v:= ('девяносто ' ); end;
    100: v:=('сто'); 
  end; 
  writeln(v,p); 
end.

Так оно по крайней мере запускается. Но нет обработки переменной p, по ней надо делать отдельный case of.
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота