Число называется автоморфным в Python, если последние цифры квадрата этого числа дают то же самое число.
Ниже приведены примеры автоморфных чисел:
1. Ввод: 25
Выходные данные – Да, это автоморфное число.
Причина – Квадрат 25 дает 625, поскольку последние цифры 25, это автоморфное число.
2. Ввод: 14
Выходные данные – Нет, это не автоморфное число.
Причина – Квадрат 14 дает 196, поскольку последние цифры 96, это не автоморфное число.
3. Ввод: 76
Выходные данные – Да, это автоморфное число.
Причина – Квадрат 76 дает 6776, поскольку последние цифры 76, это автоморфное число.
Поскольку концепция теперь нам ясна, давайте посмотрим, как мы можем использовать логику, чтобы проверить, являются ли числа автоморфными в Python или нет. Мы знаем, что оператор модуля может использоваться для выполнения функций с цифрами числа.
Ниже показано, как это можно сделать в Python.
Пример –
num = int(input("Enter a number you want to check: n")) #calculating the number of digits num_of_digits = len(str(num)) #computing the square of a number square = num**2 #obtaining the last digits last_digits = square%pow(10,num_of_digits) #comparing the digits of number with input if last_digits == num: print("Yes, {} is an automorphic number".format(num)) else: print("No, {} is not an automorphic number".format(num))
Выход:
Enter a number you want to check: 76 Yes, 76 is an automorphic number
Итак, давайте взглянем на пошаговый подход:
- Первым делом нужно взять число у пользователя и вычислить его квадрат.
- Мы можем рассчитать количество цифр с помощью функции len.
- Следующее, что нужно сделать, это вычислить квадрат числа.
- Теперь мы воспользуемся степенной функцией и оператором модуля, чтобы получить последние цифры.
- Наконец, мы сравним последнюю цифру с входным числом.
- При выполнении программы будет отображен желаемый результат.
Давайте посмотрим, что произойдет, когда мы передадим числа, которые мы обсуждали в примере.
Поскольку 25 – автоморфное число, оно отображает требуемое сообщение.
Выход 2:
Enter a number you want to check: 25 Yes, 25 is an automorphic number
Поскольку 14 не является автоморфным числом, оно отображает необходимое сообщение.
Выход 3:
Enter a number you want to check: 14 No, 14 is not an automorphic number
Использование цикла while
Следующий подход к тому же выглядит следующим образом:
Пример –
print("Enter the number you want to check:") num=int(input()) square=num*num flag=0 while(num>0): if(num%10!=square%10): print("No, it is not an automorphic number.") flag=1 break num=num//10 square=square//10 if(flag==0): print("Yes, it is an automorphic number.")
Выход:
Enter the number you want to check: 25 Yes, it is an automorphic number.
Давайте разберемся, какие шаги мы выполнили в этой программе:
- Первый шаг остается прежним – взять число у пользователя и вычислить его квадрат.
- Мы объявили цикл while, который будет выполняться до тех пор, пока число не станет равным нулю.
- Теперь мы сравним, равна ли единица числа числа разряду единицы числа, полученному после вычисления квадрата.
- Если указанное выше условие выполнено, мы перейдем к делению числа с остатком и числа в квадрате.
- При выполнении программы понятно, является ли число автоморфным числом или нет.
Итак, в этой статье мы узнали, что такое автоморфное число и как мы можем проверить, является ли данное число автоморфным или нет, используя Python.
Изучаю Python вместе с вами, читаю, собираю и записываю информацию опытных программистов.
0 / 0 / 0 Регистрация: 25.02.2018 Сообщений: 20 |
|
1 |
|
25.02.2018, 12:33. Показов 51051. Ответов 9
Напишите пожалуйста программу с объяснением . Пример: Введите N: 1000 1*1=1 5*5=25 6*6=36 25*25=625 76*76=5776
0 |
Programming Эксперт 94731 / 64177 / 26122 Регистрация: 12.04.2006 Сообщений: 116,782 |
25.02.2018, 12:33 |
9 |
Casper-SC 4431 / 2091 / 404 Регистрация: 27.03.2010 Сообщений: 5,657 Записей в блоге: 1 |
||||
25.02.2018, 17:34 |
2 |
|||
Вывод: 1 * 1 = 1
1 |
Vigi 628 / 468 / 179 Регистрация: 28.05.2012 Сообщений: 1,399 |
||||
26.02.2018, 07:15 |
3 |
|||
Через строки:
1 |
Casper-SC 4431 / 2091 / 404 Регистрация: 27.03.2010 Сообщений: 5,657 Записей в блоге: 1 |
||||||||
26.02.2018, 23:57 |
4 |
|||||||
Смотрю тут краткость в почёте. Окей:
Ну, или уж совсем, чтобы прямо в одну строчку, как положено и с вводом пользователя:
Добавлено через 20 минут Первый (длинный) способ: Второй (короткий) способ:
0 |
Shamil1 Модератор 2978 / 2131 / 451 Регистрация: 26.03.2015 Сообщений: 8,298 |
||||
27.02.2018, 01:38 |
5 |
|||
Casper-SC,
1 |
Casper-SC 4431 / 2091 / 404 Регистрация: 27.03.2010 Сообщений: 5,657 Записей в блоге: 1 |
||||
27.02.2018, 02:17 |
6 |
|||
Замерял так:
Own time (ms) 3341 Неплохо
0 |
1289 / 906 / 479 Регистрация: 05.12.2013 Сообщений: 3,067 |
|
27.02.2018, 08:51 |
7 |
А что тормозит? yield
1 |
Модератор 2978 / 2131 / 451 Регистрация: 26.03.2015 Сообщений: 8,298 |
|
27.02.2018, 09:56 |
8 |
Замерял так Для бóльших n разница должна быть больше.
0 |
Shamil1 Модератор 2978 / 2131 / 451 Регистрация: 26.03.2015 Сообщений: 8,298 |
||||
27.02.2018, 12:11 |
9 |
|||
Более быстрый вариант:
Код [0, 1, 5, 6, 25, 76, 376, 625, 9376, 90625, 109376, 890625, 2890625, 7109376, 12890625, 87109376, 212890625, 787109376, 1787109376, 8212890625, 18212890625, 81787109376, 918212890625]
з.ы. Предыдущий “быстрый” вариант был не совсем корректен, хоть и выдавал правильный ответ. Поэтому я его удалил и заменил на этот.
0 |
korol_zwerei 0 / 0 / 0 Регистрация: 30.01.2022 Сообщений: 6 |
||||
30.01.2022, 23:28 |
10 |
|||
0 |
IT_Exp Эксперт 87844 / 49110 / 22898 Регистрация: 17.06.2006 Сообщений: 92,604 |
30.01.2022, 23:28 |
10 |
Check Whether or Not the Number is an Automorphic Number in Python
Given an integer input for a number, the objective is to check whether or not the number is Automorphic or not. Therefore we’ll write a program to Check Whether or Not the Number is an Automorphic Number in Python Language.
Example
Input : 5
Output : It's an Automorphic Number.
Check Whether or Not the Number is an Automorphic Number in Python Language
Given an integer input as the number the objective is to check whether or not the number is an Automorphic number. To do we’ll first square the number and check if the number has been repeated in the same order of digits at the end of it’s square. For a Number to be Automorphic, it must pass the below mentioned condition
Automorphic Number
A number whose square ends with the same number is known as an Automorphic number.
Let’s try and understand it even better using an example ,
Example Input : number = 5 Output : It's an Automorphic number. Explanation : Number = 5 Square of number = 25 as the square of the number ends with the number itself, It's an Automorphic number.
Therefore, for a number to be Automorphic it number have a square that ends with the number itself.
Therefore, to Check Whether or Not a Number is an Automorphic Number, we write a Python Code using the following methods –
- Method 1: Using Modulo Operators
- Method 2: Short cut
- Method 3: Using endswith() method
We’ll discuss the above-mentioned methods in detail in the upcoming sections.
Method 1: Using Modulo Operators
Working
In this method we’ll use the modulo operator to extract the last number of digits based on the length of the number input. We’ll reverse the number to match with the original numeric order of the digits.
Given an integer input as the number, we perform the following operations,
- Find the square of the given integer input.
- Check is the square % 10 ** len( str( number ) ) matches the original number itself.
Let’s implement the above Logic in Python Language.
Python Code
Run
number = 376 square = pow(number, 2) mod = pow(10, len(str(number))) # 141376 % 1000 if square % mod == number: print("It's an Automorphic Number") else: print("It's not an Automorphic Number")
Output
it's an Automorphic Number
Method 2 : One Line Method (using Slicing)
Run
# One line method for automorphic number in python n = 376 # n^2 = 141376 141376[-3::] = 376 print("YES" if int(str(n**2)[-len(str(n))::]) == n else "No")
Output
YES
Method 3 : Using Endswith() Method
The endswith()
method returns True if the string ends with the specified value, otherwise False.
Run
num = 376 a = str(num) num1 = num ** 2 b = str(num1) if b.endswith(a): print("It's an Automorphic Number") else: print("It's not an Automorphic Number")
Output
It's an Automorphic Number
Prime Course Trailer
Related Banners
Get PrepInsta Prime & get Access to all 200+ courses offered by PrepInsta in One Subscription
- Positive or Negative number: C | C++ | Java | Python
- Even or Odd number: C | C++ | Java | Python
- Sum of First N Natural numbers: C | C++ | Java | Python
- Sum of N natural numbers: C | C++ | Java | Python
- Sum of numbers in a given range: C | C++ | Java | Python
- Greatest of two numbers: C | C++ | Java | Python
- Greatest of the Three numbers: C | C++ | Java | Python
- Leap year or not: C | C++ | Java | Python
- Prime number: C | C++ | Java | Python
- Prime number within a given range: C | C++ | Java | Python
- Sum of digits of a number: C | C++ | Java | Python
- Reverse of a number : C | C++ | Java | Python
- Palindrome number: C | C++ | Java | Python
- Armstrong number : C | C++ | Java | Python
- Armstrong number in a given range : C | C++ | Java | Python
- Fibonacci Series upto nth term : C | C++ | Java | Python
- Find the Nth Term of the Fibonacci Series : C | C++ | Java | Python
- Factorial of a number : C | C++ | Java | Python
- Power of a number : C | C++ | Java | Python
- Factor of a number : C | C++ | Java | Python
- Strong number : C | C++ | Java | Python
- Perfect number : C | C++ | Java | Python
- Automorphic number : C | C++ | Java | Python
- Harshad number : C | C++ | Java | Python
- Abundant number : C| C++ | Java | Python
- Friendly pair : C | C++ | Java | Python
Many interview panels have asked this question to me in the interview to find the if a given number is an automorphic number or not.
I have added the above code which I got to my knowledge. Please add if another simple logic to solve this problem.
OneCricketeer
175k18 gold badges129 silver badges238 bronze badges
asked Dec 6, 2021 at 15:43
Humble_PrOgRaMeRHumble_PrOgRaMeR
6894 gold badges14 silver badges34 bronze badges
2
try this :
num = int(input('enter a number'))
if str(num) == str(num**2)[-len(str(num)):] :
print (num , 'is Automorphic ')
else :
print (num , 'is not Automorphic ')
answered Dec 6, 2021 at 15:57
8
На уроке рассматривается алгоритм работы с различными видами циклов на языке Питон (Python): цикл с предусловием While и цикл со счетчиком For. Объясняется возможность генерации в Python случайных чисел
Содержание:
- Цикл WHILE
- Комментарии в Python
- Операторы break и continue
- Случайное число
- Цикл FOR
- Циклы с условием (короткие запросы)
Цикл while — цикл с предусловием. Как правило данный цикл применяется, когда не известно сколько должно быть итераций цикла. Пример использования:
i = 5 while i < 15: print(i) i = i + 2 # вывод 5 7 9 11 13
Еще пример:
i = 0 while i < 100: i += 1 print(i) # 100
Комментарии в Python
Однострочный комментарий начинается с #
.
Блочный комментарий можно использовать так (строго говоря, блочного комментария нет в Питоне):
#Однострочные Питон комментарии # Это # блочный или многострочный # комментарий
'''
тоже блочный
комментарий
'''
Операторы break и continue
Оператор break — выход из цикла
Оператор continue — выход из текущей итерации цикла
Задание: Определить, что выведет программа:
a=0 while a!=10: a=a+1 if a==5: continue print (a) if a==7: break print ("всё!")
Случайное число
В Python случайное число задается с помощью двух функций:
- random() – случайное вещественное из полуинтервала [0,1) ;
- randint(a,b) – случайное целое из отрезка [a,b].
Но для использования функция необходимо предварительно подключить библиотеку:
# подключение библиотеки: from random import randint # получение целого случайного числа в диапазоне от 1 до 10 x = randint(1,11) # получение вещественного случайного числа в полуинтервале от 5 до 11 from random import random x = 6*random() + 5
Пример: Написать программу для игры: Загадывается число (использовать функцию random
). Пользователю предлагается угадать число. Если пользователь не угадывает, то ему предлагается угадать число снова и выдается подсказка, что число больше или меньше введенного. Так бесконечно, пока пользователь не введет слово exit. Бесконечный цикл организовать через while True:
.
✍ Решение:
import random number = random.randint(0, 100) while True: answer = input('Угадай число: ') if answer == "" or answer == "exit": print("Выход из программы") break if not answer.isdigit(): print("Введи правильное число") continue answer = int(answer) if answer == number: print('Верно!') break elif answer > number: print('Загаданное число больше') else: print('Загаданное число меньше')
Использование else
в комбинации с break
После цикла можно использовать блок else:
, который будет выполнен один раз после окончания цикла, когда условие цикла станет неверно. Данный блок целесообразно использовать в сочетании с оператором break
. Так, если выполняется инструкция break
, то блок else
уже не выполнится. Рассмотрим пример:
Пример: В цикле запрашивать числа до тех пор, пока не введен ноль. Проверять, есть ли среди введенных чисел, число n
.
Пример вывода:
введите искомое число >>5 1 2 3 4 5 Встретилось число 5
введите искомое число >>5 1 2 3 0 Число не встретилось
✍ Решение:
n=int(input('введите искомое число')) a = int(input()) while a != 0: if a == n: print('Встретилось число', n) break a = int(input()) else: print('Число не встретилось')
Задание Python 2_1: Последовательно вводятся ненулевые числа. Определить сумму положительных и сумму отрицательных чисел. Закончить ввод чисел при вводе 0. Для перевода из строки в целое число, использовать функцию int().
Пример вывода:
Введите числа: -5 7 8 -2 0 сумма положительных: 15, сумма отрицательных: -7
Задание Python 2_2: При помощи цикла распечатать ряд Фибоначчи: 1 1 2 3 5 8 13 21.
Задание Python 2_3: Запрашиваются 10 чисел (целые значения от 0 до 1000). Опишите алгоритм, позволяющий найти и вывести минимальное значение среди введенных чисел, которые имеют чётное значение и не делятся на три.
Пример вывода:
Введите числа: 5 7 8 22 9 12 15 0 2 3 результат: 2
Задание Python 2_4: В цикле запрашиваются числа, пока не введен 0
. Есть ли среди чисел четное число? Использовать блок else
в комбинации с инструкцией break
.
Пример вывода:
Введите числа: 1 3 5 0 результат: четных нет
Введите числа: 1 3 5 6 результат: четное число 6
Цикл FOR
В Python цикл for имеет такой синтаксис:
Пример:
for i in range(3): print(i) # 0 # 1 # 2
Пример с двумя параметрами:
for i in range(5, 8): print(i) # 5 # 6 # 7
Пример:
Вывести степени двойки с 1-й по 10-ю.
✍ Решение:
for x in range(1,11): print ( 2**x ) # 2 4 8 16 ... 1024
Меняем шаг цикла
Шаг счетчика цикла можно менять:
for x in range(1,11,2): print ( 2**x )
Отрицательный шаг:
for i in range(10, 7, -1): print(i) # 10 # 9 # 8
При работе со строкой
for i in 'hello world': if i == 'o': continue print(i, end='') # hell wrld
Пример использования break:
for i in 'hello world': if i == 'l': break print(i, end='') # he
При работе со cписками
greetings = ["Good day", "hi","hello"] for i in range(len(greetings)): print(i,greetings[i]) # 0 Good day # 1 hi # 2 hello
Пример работы с break
и else
(даны 10 чисел; определить, есть ли среди них введенное число):
n = int(input('введите число, которое нужно найти')) for i in range(10): numb = int(input()) if numb == n: print('Встретилось число', n) break else: print('число не встретилось')
Циклы с условием (короткие запросы)
Рассмотрим две реализации одних и тех же заданий.
Пример: Дан список целочисленных значений. Необходимо вывести удвоенные значения списка.
Пример вывода:
список: [1, 4, 6, 2, 10, 15, 20] [2, 8, 12, 4, 20, 30, 40]
✍ Решение:
-
Обычное решение:
1 2 3 4 5 |
numbers = [1, 4, 6, 2, 10, 15, 20] for i in numbers: print(i*2) # 2 8 12 4 20 30 40 |
С помощью запроса:
1 2 3 |
numbers = [1, 4, 6, 2, 10, 15, 20] print([i*2 for i in numbers]) # [2, 8, 12, 4, 20, 30, 40] |
Пример: Даны два списка: 1. варианты блюд для завтрака и 2. здоровая пища. Необходимо выбрать те блюда для завтрака, которые находятся в списке здоровой пищи.
Пример вывода:
варианты блюд для завтрака: яйцо, брокколи, бутерброд, чипсы, торт здоровая пища: яйцо, каша, омлет, брокколи Хороший завтрак: яйцо, брокколи
✍ Решение:
Обычное решение | ||
|
||
Короткий запрос | ||
|
Или с созданием нового списка:
Обычное решение | ||
|
||
Короткий запрос | ||
|
Задание: Определить, что выведет программа:
a=0 n=10 for i in range(1,n+1,2): a=a+1 if a==5: continue print (a) if a==7: break print ("всё!")
Задание Python 2_5: Составить программу для вычисления среднего арифметического N
произвольных вводимых чисел.
Пример вывода:
Введите количество чисел: 6 Введите числа: -5 4 12 9 7 2 результат: 4,83
Задание Python 2_6: Исправить предыдущее задание (2_5) для работы со случайными числами.
Задание Python 2_7:
Найдите все трёхзначные и четырёхзначные числа Армстронга.
Число Армстронга. Числом Армстронга считается натуральное число, сумма цифр которого, возведенных в N-ную степень (N – количество цифр в числе) равна самому числу.
Например, 153 = 13 + 53 + 33.
Задание Python 2_8:
Напишите программу, которая запрашивает натуральное число N и выводит на экран все автоморфные числа, не превосходящие N.
Автоморфным называется натуральное число, если оно равно последним цифрам своего квадрата. Например, 252 = 625.
Задание Python 2_9:
Напишите программу, которая из заданного списка с целочисленными значениями выбирает только те значения, которые есть во втором списке. Решить двумя способами: обычное решение и с помощью запроса.
Примерный вывод:
первый = [1, 4, 6, 2, 10, 15, 20] второй = [30, 1, 15, 20, 25] результат = [1, 15, 20]
Цикл for in при работе с множеством значений
Цикл удобно применять при работе с кортежами, списками, строками и диапазонами.
Кортеж — тип данных
Пример: Вывести на экран цвета радуги с их порядковыми номерами:
1-й цвет радуги - это красный ...
✍ Решение:
i = 1 for color in 'красный', 'оранжевый', 'желтый', 'зеленый', 'голубой', 'синий', 'фиолетовый': print(i,'-й цвет радуги - это ', color) i += 1
Другой вариант работы со счетчиком цикла:
for i in 1,2,3,'one','two','three': print(i)
При первых трех итерациях цикла переменная i
будет принимать значение типа int, при последующих трех — типа str.
Еще примеры:
name = "Ivan" for letter in name: print(letter) # I # v # a # n
Задание Python 2_10: Распечатывать дни недели с их порядковыми номерами. Кроме того, рядом выводить выходной ли это день или рабочий. Использовать кортеж.
1-й день недели - понедельник, рабочий день ...