pastore
?>

Даны натуральное число n и последовательность целых чисел а1, а2, …, аn. найти кол-во чисел ai (i=1, ) являющихся полными квадратами

Информатика

Ответы

s2010av565

var n, i, k, a: integer;

begin readln(n); k : = 0; for i : = 1 to n do begin readln(a); if trunc(sqrt(a)) * trunc(sqrt(a)) = a then k : = k + 1; end; writeln(k); end.

hellomaxim

если я правильно понял, то

1. вариант с++

#include < iostream>

int nod(int var1, int var2) //алгоритм евклида

{

    while(var1 ! = var2)

    {

        if(var1 > var2)

            var1 = var1 - var2;

        else var2 = var2 - var1;

    }

    return var1;

}

int nok(int var1, int var2)

{

    return (var1 * var2) / nod(var1, var2);

}

int main()

{

    short int

        a, b, c, d,

        m, n, nk;

    std: : cin > > a > > b > > c > > d;

    nk = nok(b, d); // избегаем не нужных вычислений

    m = a * (nk / b) + c * (nk / d);

    n = nok(b, d);

    std: : cout < < "первая дробь: " < < a < < "/" < < b < < std: : endl;

    std: : cout < < "вторая дробь: " < < c < < "/" < < d < < std: : endl;

    std: : cout < < std: : endl < < "результат: " < < m < < "/" < < n < < std: : endl;

}

2. c

#include < stdio.h>

int nod(int var1, int var2) //алгоритм евклида

{

    while(var1 ! = var2)

    {

        if(var1 > var2)

            var1 = var1 - var2;

        else var2 = var2 - var1;

    }

    return var1;

}

int nok(int var1, int var2)

{

    return (var1 * var2) / nod(var1, var2);

}

int main()

{

    short int

        a, b, c, d,

        m, n, nk;

    scanf("%hi%hi%hi%hi", & a, & b, & c, & d);

    nk = nok(b, d); // избегаем не нужных вычислений

    m = a * (nk / b) + c * (nk / d);

    n = nok(b, d);

    printf("первая дробь: %hi/%d\n", a, b);

    printf("вторая дробь: %hi/%d\n", c, d);

    printf("результат: %hi/%hi\n", m, n);

}

akuznecov8989
Пусть в "долях" a < = b < = c вершин, и проведены все рёбра между разными "долями". так как из каждой вершины, лежащей в первой "доле", можно провести только b + c рёбер, из второй доли — a + c рёбер, из третьей — a + b рёбер, то общее количество рёбер равно (a * (b + c) + b * (a + c) + c * (a + b))/2 = ab + ac + bc (деление на 2 возникает из-за того, что каждое ребро подсчитывается дважды).нужны такие a, b, c, при которых значение выражения ab + bc + ac будет максимально. максимальное значение можно найти перебором. python 3: max_value = 0    for a in range(41//3 + 1):     for b in range(a, (41 - a)//2 + 1):       c = 41 - a - b      value = a * b + a * c + b * c      max_value = max(max_value, value)  print(max_value) ответ. 560.

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

Даны натуральное число n и последовательность целых чисел а1, а2, …, аn. найти кол-во чисел ai (i=1, ) являющихся полными квадратами
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

ngoncharov573
КОРМИЛИЦЫНА
Nikolaevich824
evsmorodina
phmad7
agent-ulitka5
nata27-73589
set907
Шмидт Ирина
Titeeva-Vladimirovich283
es196
BelyaevNadezhda223
AntonovaAvi1716
козлов
KosarinPotemkina1888