Написать программу которая ищет n

This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters

// // Задача 66: Задайте значения M и N. Напишите программу, которая найдёт сумму натуральных элементов в промежутке от M до N.
// // M = 1; N = 15 -> 120
// // M = 4; N = 8. -> 30
Console . Write ( » Введите число M: » ) ;
int m = Convert . ToInt32 ( Console . ReadLine ( ) ) ;
Console . Write ( » Введите число N: » ) ;
int n = Convert . ToInt32 ( Console . ReadLine ( ) ) ;
SumFromMToN ( m , n ) ;
// вызов функции «сумма чисел от M до N»
void SumFromMToN ( int m , int n )
Console . Write ( SumMN ( m — 1 , n ) ) ;
>
// функция сумма чисел от M до N
int SumMN ( int m , int n )
int res = m ;
if ( m == n )
return 0 ;
else
m ++ ;
res = m + SumMN ( m , n ) ;
return res ;
>
>

Делители-1🌶️. Напишите программу, которая находит число из отрезка [a;b] с максим. суммой делителей

Источник: gist.github.com

Типичные задачи с циклами на C#. Часть 1

Доработаем этот проект по Вашим требованиям, напишите подробности нам в Телеграм

Типичные задачи с циклами на C#. Часть 1

В исходнике представлены решения для следующих 3-х задач на C# в Visual Studio 2015.

Произведение

Напишите программу, которая вводит два целых числа и находит их произведение, не используя операцию умножения. Учтите, что числа могут быть отрицательными.

Входные данные: входная строка содержит два целых числа.

Выходные данные: программа должна вывести произведение введённых чисел.

int a = int.Parse(Console.ReadLine()); int b = int.Parse(Console.ReadLine()); int result = 0; for (int i = 1; i Console.WriteLine(result);

Сумма чисел

Напишите программу, которая вводит натуральное число N и находит сумму всех натуральных чисел от 1 до N .

Входные данные: входная строка содержит единственное целое число N .

Таблица-1.Дано натуральное число n.Напишите программу, которая печатает таблицу размером n×3 |Python

Выходные данные: программа должна вывести сумму натуральных чисел от 1 до введённого числа N .

int N = int.Parse(Console.ReadLine()); int result = 0; for (int i = 1; i Console.WriteLine(result);

Первые N чётных

Напишите программу, которая вводит натуральное число N и выводит первые N чётных натуральных чисел.

Читайте также:
Программа re generation это

Входные данные: входная строка содержит единственное число – требуемое количество чисел N .

Выходные данные: программа должна вывести в одну строчку N первых чётных натуральных чисел, разделив их пробелами.

int N = int.Parse(Console.ReadLine()); int i = 1, k = 1; while (true) < if (i % 2 == 0) < Console.Write(i + » «); k++; >if (k > N) < break; >i++; >

  • Автор работы: dmytro

Купить 500,00

Сразу после оплаты Вы сможете скачать работу и мы вышлем дополнительно файл с работой на электронную почту. Исходник программ Вы сможете отредактировать, как Вам нужно.

Комментарии
Комментарии (0)

Здесь еще никто не оставлял свои комментарии, будь первым!

Источник: studlearn.com

Студия Компьютерного Мастерства

Проверяется умение создавать собственные программы (10–20 строк) для обработки целочисленной информации.

Немного теории:

Что нужно знать:

  • в данных задачах нет ограничения на время выполнения, но отметим, что простой перебор иногда может выполняться в Phyton достаточно долго, поэтому необходимо написать эффективный алгоритм.
  • задачи этого типа можно решать с помощью электронных таблиц или собственной программы;

k = 0 for n in range(a, b+1): if условие выполнено: k += 1 print( count )

⇐ Пусть необходимо перебрать все целые числа на отрезке [a; b] и подсчитать, для скольких из них выполняется некоторое условие; общая структура цикла перебора записывается так (Python)

if i % j == 0: print(«Делится») else: print(«Не делится»)

  • проверку условия удобно оформить в виде функции, возвращающей логическое значение (True/False), но можно этого и не делать
  • проверить делимость числа i на число j можно с помощью операции взятия остатка от деления i на j — если остаток == 0, число i делится на j нацело.
  • ⇐ проверка делимости на языке Python выглядит так:

k = 0 for d in range(1, n+1): if i % j == 0: k += 1 print(k) # вывести количество делителей

  • для определения количества делителей натурального числа n можно использовать цикл, в котором перебираются все возможные делители d от 1 до n, при обнаружении делителя увеличивается счётчик делителей:

d = [] # перебор всех возможных делителей for i in range(1,n+1): if n % i == 0: # если нашли делитель d d.append(i) # добавили его в массив

  • если требуется определить не только количество делителей, но и сами делители, нужно сохранять их в массиве
  • в языке Python удобно использовать динамический массив: сначала он пуст, а при обнаружении очередного делителя этот делитель добавляется в массив:
  • перебор делителей можно оптимизировать, учитывая, что наименьший из пары делителей, таких что a×b = n, не превышает квадратного корня из n; нужно только аккуратно обработать случай, когда число n представляет собой квадрат другого целого числа;
  • отметим, что для чисел, которые предлагаются в вариантах заданий, такая оптимизация не обязательна; более того, усложнение программы может привести к дополнительным ошибкам…
Читайте также:
Как с диска д удалить программу

nDel = 0 # количество делителей числа for d in range(1, n+1): # все делители if n % d == 0: nDel += 1 # нашли ещё делитель if nDel == 2: print( «Число простое» ) else: print( «Число составное» )

  • простое число n делится только на 1 и само на себя, причём единица не считается простым числом; таким образом, любое простое число имеет только два делителя
  • для определения простоты числа можно считать общее количество его делителей; если их ровно два, то число простое, если не два – не простое:

nDel = 0 # количество делителей числа for i in range(1, n+1): # все делители if n % i == 0: nDel += 1 # нашли ещё делитель if nDel > 2: # уже не простое число break # досрочный выход из цикла if nDel == 2: print( «Число простое» ) else: print( «Число составное» )

  • работу программы можно ускорить: если уже найдено больше двух делителей, то число не простое и можно досрочно закончит работу цикла с помощью оператора break :

nDel = 0 for i in range(2, n): if n % i == 0: nDel += 1 # нашли делитель break # досрочный выход из цикла if nDel == 0: print( «Число простое» ) else: print( «Число составное» )

  • другой вариант – считать количество делителей числа на отрезке [2; n–1]; как только хотя бы один такой делитель будет найден, можно завершить цикл, потому что число явно не простое:

prime = True # сначала считаем число простым for d in range(2, n): if n % d == 0: prime = False # уже не простое break # досрочный выход из цикла if prime: print( «Число простое» ) else: print( «Число составное» )

  • можно сделать то же самое с помощью логической переменной:
  • в этом задании обычно предлагаются большие числа, поэтому проверка делимости на все числа от 2 до n-1 выполняется очень долго, и на устаревших компьютерах время работы приведённого выше алгоритма может быть слишком велико
  • программу можно оптимизировать, если вспомнить, что наименьший из пары делителей, таких что a×b = n, не превышает квадратного корня из n; поэтому можно закончить перебор значением , округлив его до ближайшего целого числа ; если на отрезке [2;] не найден ни один делитель, их нет и на отрезке [+ 1, n – 1]
  • следовательно, можно существенно ускорить перебор, изменив конечное значение переменной цикла:
Читайте также:
Программа чтобы сделать видео с эффектами

С подключением библиотеки from math import sqrt

for d in range(2, round(sqrt(n))+1):

или без библиотеки

for d in range(2, round(n**0.5)+1):

Особенности языка Python

  • (В. Ялдыгин) при записи больших чисел в Python можно использовать знаки подчеркивания; например, 7_777_777 обозначает то же самое, что и 7777777.

Пример задания:

Задание 1. Пять различных нечётных делителей

Найдите все натуральные числа, принадлежащие отрезку [35 000 000; 40 000 000], у которых ровно пять различных нечётных делителей (количество чётных делителей может быть любым). В ответе перечислите найденные числа в порядке возрастания.

Тренировочный вариант №4 от 17 марта 2021 года СтатГрад Вариант ИН2010401

Решение:

  • простой перебор будет в Phyton выполняться долго. поэтому обратимся к математике.
  • любое число единственным образом (с точностью до порядка сомножителей) представимо в виде произведения простых чисел:

Вот более быстрый метод: если есть простое число, 4-я степень которого равна самому числу, то это число имеет ровно 5 нечетных делителей. Разложим искомое число на простые. Так как в дальнейшем нас будут интересовать нечётные делители, степень двойки выписана отдельно: n = 2^k0 * p1^k1 * p2^k2 * . * pi*ki , где k0 — целое неотрицательное, k1, . ki — натуральные, p1, . pi — различные нечётные простые. Любой делитель n конструируется как произведение простых из разложения выше. Сколько нечётных делителей мы можем сконструировать? (k1 + 1)(k2 + 1) . (ki + 1) . Это прозведение может быть равно пяти только если у числа ровно один нечётный простой делитель, который возводится в четвёртую степень. Искомое число должно иметь вид:

n = 2 k * p 4

, где k — целое неотрицательное, p — нечетное простое. Сами нечётные делители тогда имеют вид 1, p, pp, ppp, pppp . Источник: ИНФОРМАТИКА ЭКСПЕРТ >>

Источник: css-info.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru