GloomyCat231
11.08.2021 10:54

Добрый день, есть вот такая задачка, которую адо решить на C++: Простой снеговик Нолс любит все, что такое же простое, как он, и такое же круглое, как он. Он попросил своего друга, зайца Тимофея, загадать два числа, a и b. После этого он решил перемножить все простые числа, лежащие между a и b (включительно), и посмотреть, насколько круглое число получится..

К сожалению, ни Нолс, ни Тимофей сами не умеют считать им
Попробовал решить вот так, но по времени не проходит:

#include

using namespace std;
#define int long long

signed main() {
int a, b;
cin >> a >> b;
if (a == 1) {
a = 2;
}
int count = 1;
for (int i = a; i <= b; i++) {
bool prime = true;
for (int j = a; j * j <= i; j++) {
if (i % j == 0) {
prime = false;
break;
}
}
if (prime) count *= i;
}

int ans = 0;
while (count % 10 == 0){
ans++;
count /= 10;
}
cout << ans;
return 0;
}
Спросил у опытных людей, сказали, что задачу можно решить через if типа вот так:
int main() {
int a, b;
cin >> a >> b;
if (some_cond) {
cout << one_ans;
} else {
cout << another_ans;
}
}
Не могу ни как допереть .

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
KrystallBlack
10.10.2020 19:01
// тестировалось на C#.Net Framework 4.5
using System;

class Program
{
    static void Main()
    {
        int x1 = 2, y1 = 1;
        int x2 = 6, y2 = 5;
        int x3 = 10, y3 = 1;

        var a = Distance(x2, y2, x3, y3);
        var b = Distance(x1, y1, x3, y3);
        var c = Distance(x2, y2, x1, y1);

       
        Console.WriteLine("S = {0}", Square(a, b, c));
        Console.ReadKey();
    }

    //растояние между точками
    static double Distance(int x1, int y1, int x2, int y2)
    {
        return Math.Sqrt((x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1));
    }

    //формула герона
    static double Square(double a, double b, double c)
    {
        var p = (a + b + c) / 2;
        return Math.Sqrt(p * (p - a) * (p - b) * (p - c));
    }

    // теорема косинусов
    static double Angle(double a, double b, double c)
    {
        return Math.Acos((b * b + c * c - a * a) / (2 * b * c));
    }

    static bool IsAcuteAngel(double alpha)
    {
        return alpha < Math.PI / 2;
    }
}
0,0(0 оценок)
Ответ:
ЛаймовыйКотик00
24.05.2022 05:41
//PascalABC.NET (версия 3.1, сборка 1198 от 11.03.2016)
var a,n,k,i,j,s:integer;
begin
  writeln('Количество учеников и количество оценок');
  readln(n,k);
  for i:=1 to n do begin
    for j:=1 to k do begin
      write('Ученик № ',i, ' оценка № ',j,' = ');
      readln(a);
      s:=s+a;
    end;
  end;
  println('Средняя оценка группы ',s/(n*k):6:3);
end.

Тестовое решение:
Количество учеников и количество оценок
3 3
Ученик № 1 оценка № 1 = 3
Ученик № 1 оценка № 2 = 4
Ученик № 1 оценка № 3 = 4
Ученик № 2 оценка № 1 = 5
Ученик № 2 оценка № 2 = 4
Ученик № 2 оценка № 3 = 4
Ученик № 3 оценка № 1 = 4
Ученик № 3 оценка № 2 = 3
Ученик № 3 оценка № 3 = 3
Средняя оценка группы  3.778
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота