Професионална програма
Loading...
+ Нов въпрос
ceco2004 avatar ceco2004 20 Точки

Помощ за 06. Prime Pairs - изпитна от 10 и 11 Maрт 2018

Не ми достигат 20% в Джъдж.  На примерните вход и изход всичко е наред, но изглежда пропускам нещо. Гледах примерни решения, и логиката е същата. Ето задачата с условието в системата https://judge.softuni.bg/Contests/Practice/Index/968#16

А тук е моето решение https://pastebin.com/M6k9j7xV

Някави насоки?

Тагове:
0
Programming Basics with C#
Rogneda avatar Rogneda 60 Точки
Best Answer

грешката ти е в проверката на входа.. тази проверка е абсолютно излишна,  в условието ти е казано че числата са от 10.. 90 и 1..9 няма нужда да го проверяваш.

като премахнеш проверката 

if (firsDoubleStart >= 10 && firsDoubleStart <= 90 && secondDoubleStart >= 10 && secondDoubleStart <= 90 && firsDoubleLenght >= 1 && firsDoubleLenght <= 9 && secondDoubleLenght >= 1 && secondDoubleLenght <= 9)

judge дава 100/100
            

0
ceco2004 avatar ceco2004 20 Точки

Благодаря!

И на мен ми се стори излишна проверката, но я написах в последствие, защото реших че са заложили в системата да проверява за  вход извън условието, но нищо не се промени - бях объркал и една променлива която коригирах, но оставих проверката.  Наистина без проверката мина... Въпреки проверката, според мен ако тя е правилна също би трябвало да даде 100%. Наистина е малко дразнеща, но е по кратка отколкото да се заделят булеви променливи само за една проверка....

1
Rogneda avatar Rogneda 60 Точки

Явно има разминаване между интервала 10..90 посочен в условието за двете променливи, и входа на тестовете .. в двата теста променливите са в интервала 10..100 smiley

0
08/04/2018 21:52:53
ceco2004 avatar ceco2004 20 Точки

Вероятно... или има ограничение "начало + продължителност <= 99", което не пречи първа линия да е 91 а продължителността 8 и още при проверката да гърми защото не влиза в иф-а..... 

0
Angelovasilviya avatar Angelovasilviya 3 Точки

Пращам ти решението в Javascript, но ще го разбереш. 

https://pastebin.com/FWiPUJm1

1
AlexTasev avatar AlexTasev 65 Точки

Благодаря за решението в JS, помогна ми много да се ориентирам.

Т.к. секцията е за C#, ето едно решение:  https://pastebin.com/eTfiXnrG и малко разяснения.

Правят  се два цикъла от даденото начално число до сумата на началното и  второто въведено. Създават се булеви променливи с начална стойност "true" за да се определи дали даден резултат е просто число.  С вложени цикли с условие: (i = 2; i <= Math.Sqrt(n)) се проверява дали текущото число от външния цикъл е просто по формулата:  n % i = 0, където "n" e текущата стойност на външния цикъл, а "i" е на на вътрешния. Ако това условие се изпълни, следва прекратяване на вътрешния цикъл, т.к. числото не е просто и няма смисъл да се правят всички следващи итерации. Резултат се отпечатва в тялото на външния цикъл при условие, че двете намерени числа са прости, т.е. стойността на булевата променлива е останала "true".

0
Martin000 avatar Martin000 115 Точки

Едно кратко решение с метод: https://pastebin.com/Y85cikrv.

0
PlamTesla avatar PlamTesla 5 Точки

100/100!

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Prime_Pairs
{
    class Program
    {
        static void Main(string[] args)
        {
            int firstNum = int.Parse(Console.ReadLine());
            int secondNum = int.Parse(Console.ReadLine());
            int firstDif = int.Parse(Console.ReadLine());
            int secondDif = int.Parse(Console.ReadLine());

            for (int a = firstNum; a <= firstNum+firstDif; a++)
            {
                for (int b = secondNum; b <= secondNum+secondDif; b++)
                {                  
                    if (a%2!=0 && a%3!=0 && a%5!=0 && a%7!=0 && b%2!=0 && b%3!=0 && b%5!=0 && b%7!=0)
                    {
                        Console.WriteLine($"{a}{b}");
                    }
                }
            }
        }
    }
}
 

0
27/02/2019 16:35:54
Stef7 avatar Stef7 0 Точки

Здравей,

Това решение изглежда доста интересно може ли да го коментираш.

Аз лично задачата я реших с алгоритъма обяснен в лекциите чрез деленето на числото с всички делители от 2 до неговия корен квадратен, за int. 

Благодаря.

0
daniel_dimitrov5 avatar daniel_dimitrov5 1 Точки

Доста хитро :)

Идеята е че проверява всички числата дали не се делят без остатък на всички прости числа от 1 до 9, а именно 2, 3, 5, 7. Ако е така значи числата са прости.

0
krum_43 avatar krum_43 411 Точки

Проверката не би трябвало да ти чупи кода,но щом без нея вземаш 100/100 може би наистина има сгрешени тестове.

0