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 30 Точки

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

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

0
krum_43 avatar krum_43 756 Точки

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

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.