Если катет p - простое число, то решение всегда единственное.
На Питоне.
p=int(input())
n=(p*p-1)//2+1
print(n)
===== PascalABC.NET =====
begin
var СписокСлов := ReadlnString('Список слов через пробел:').ToWords;
var ИсходныйСловарь := new Dictionary<char, integer>;
var РабочийСловарь := new Dictionary<char, integer>;
foreach var Символ in ReadlnString('Слово:') do
ИсходныйСловарь[Символ] := ИсходныйСловарь.Get(Символ) + 1;
var СтрокаВывода: string;
foreach var Слово in СписокСлов do
begin
foreach var Символ in Слово do
РабочийСловарь[Символ] := РабочийСловарь.Get(Символ) + 1;
var МожноПостроитьСлово := True;
foreach var ЭлементРабочегоСловаря in РабочийСловарь do
begin
var Ключ := ЭлементРабочегоСловаря.Key;
var ПределПовторовБуквы: integer;
if ИсходныйСловарь.TryGetValue(Ключ, ПределПовторовБуквы) then
begin
if ЭлементРабочегоСловаря.Value > ПределПовторовБуквы then
begin
МожноПостроитьСлово := False;
break
end
end
else
begin
МожноПостроитьСлово := False;
break
end
end;
if МожноПостроитьСлово then
begin
if СтрокаВывода <> '' then
СтрокаВывода += ', ';
СтрокаВывода += Слово
end;
РабочийСловарь.Clear;
end;
Println(СтрокаВывода)
end.
Пояснение:
Если ввод осуществляется через файл, то он должен называть "Слова.txt" и находиться в одной директории с исполняемым файлом. Выбрать нужный вариант ввода можно просто введя цифру в перовом input.
Код:
# -*- coding: utf-8 -*-
format = int(input("Считать слова из файла (введите 1)\nВводить слова в консоль (введите 2)\nВвести слова в одну строку(введите 3)\nВыбор: "))
words = []
answer = []
if format == 1:
f = open('Слова.txt', "r", encoding='utf-8')
line = f.readline()
while line:
for i in line.split(", "):
words.append(i)
line = f.readline()
f.close()
elif format == 2:
n = int(input("Введите кол-во слов - "))
for i in range(n):
words.append(input("Вв. слол - "))
elif format == 3:
n = input("Введите строку - ")
for i in n.split(", "):
words.append(i)
else:
print("Неправильно введен номер ответа")
word = input("Введите поисковое слово - ")
for i in words:
for j in list(word):
if len(set(word).intersection(set(i))) == len(i):
answer.append(i)
break
print(", ".join(answer))
Текст для документа:
рыба, рак, щука, лебедь, карась, пескарь, баня, бубен, столб, баян, барыня
Поделитесь своими знаниями, ответьте на вопрос:
Ограничение времени 1 секунда ограничение памяти 64mb ввод стандартный ввод или input.txt вывод стандартный вывод или output.txt найти все возможные значения длины гипотенузы в прямоугольном треугольнике с целыми сторонами, если один из катетов имеет длину p, где p — простое число. напоминаем, что простым называется целое положительное число, имеющее ровно два делителя — единицу и самого себя. формат ввода входные данные содержат одно целое число p (2 ≤ p ≤ 109+9, p — простое формат вывода если пифагоровых треугольников с катетом длины p нет, выведите -1. иначе выведите возможные длины гипотенуз треугольников, перечисленные в порядке возрастания (то есть от меньшей к большей). пример ввод вывод 3 5 примечания пояснение к примеру: cуществует только один целочисленный прямоугольный треугольник с катетом равным 3 — классический пифагоров треугольник c длиной гипотенузы, равной 5. решением к данной является программа, написанная на одном из представленных в системе языков программирования. программа должна считывать данные со стандартного потока ввода (иначе говоря, «с клавиатуры») и выводить ответ в стандартный вывод (иначе говоря, «на экран»). выводить лишние символы (исключая пробелы и переводы строк) недопустимо, то есть если вместо ответа будет выведен ответ и после него (или перед ним) какое-то лишнее число или строка, то система ответ не зачтёт. перед тем, как отправить написанную вами программу, не забудьте указать язык программирования, на котором она написана. выбор языка осуществляется с меню, расположенного сразу под этим текстом.
begin
var a:int64;
Read(a);
(a = 2 ? -1 : (a * a + 1) div 2).Println
end.
Пример1385