19. Задачи на теорию чисел
1. Вспоминай формулы по каждой теме
2. Решай новые задачи каждый день
3. Вдумчиво разбирай решения
Последняя цифра числа
Задание
1
#2195
Уровень задания: Легче ЕГЭ
Найдите последнюю цифру числа:
а) (3^{33})
б) (57^{57})
в) (2016^{2016})
а) Заметим, что последняя цифра произведения двух натуральных чисел такая же, как последняя цифра произведения последних цифр этих двух чисел.
То есть предположим, что нам нужно найти последнюю цифру произведения чисел (457) и (369). Для этого нам нужно перемножить последние цифры этих чисел, то есть (7cdot 9 = 63), и так последняя цифра у (63) – это (3), то последняя цифра произведения чисел (457) и (369) тоже (3).
Пользуясь этим правилом, составим последовательность последних цифр степеней тройки: [3,, 9,, 7,, 1,, 3,, 9,, 7,, 1,cdots] Заметим, что в этой последовательности блоки по четыре цифры (3, 9, 7, 1) повторяются, значит, последняя цифра числа (3^{33}) зависит от того, какой остаток будет давать число (33) при делении на (4) (так как блоки по (4) цифры).
Так как остаток (33) при делении на (4) равен (1), то (3^{33}) заканчивается на такую же цифру, как и (3^1). Таким образом, последняя цифра числа (3^{33}) – это (3).
б) Аналогично решая данный пункт задачи, найдем, что последняя цифра числа (57^{57}) – это (7).
в) Аналогично решая данный пункт задачи, найдем, что последняя цифра числа (2016^{2016}) – это (6).
Ответ:
а) (3)
б) (7)
в) (6).
Задание
2
#2196
Уровень задания: Легче ЕГЭ
Академик Котовский нашел самое большое простое число: (1999876891^{999}-1). Не перепутал ли чего академик?
Посмотрим на последнюю цифру числа (1999876891^{999}).
Так как число (1999876891) оканчивается на (1), то и число (1999876891^{999}) тоже оканчивается на (1), тогда число (1999876891^{999}-1) оканчивается на (0), значит, оно делится на (10), следовательно, оно не простое. Академик ошибся.
Ответ:
Перепутал
Задание
3
#2197
Уровень задания: Легче ЕГЭ
Делится ли число (27^{23}+33^{11}) на (10)?
Найдем последнюю цифру числа (27^{23}+33^{11}).
Так как последняя цифра числа (27^{23}) – это (3), а последняя цифра числа (33^{11}) – это (7), то последняя цифра числа (27^{23}+33^{11}) – это (0), а значит это число делится на (10).
Ответ:
Да
Задание
4
#2198
Уровень задания: Легче ЕГЭ
Докажите, что все числа вида (n!) при всевозможных натуральных (n), больших четырёх, оканчиваются на одну и ту же цифру.
При (n geq 5): [n! = 1cdot 2cdot 3cdot 4cdot 5cdot …cdot n = 120cdot …cdot n] – делится на (10), следовательно, последняя цифра такого числа равна (0).
Ответ:
Доказательство
Задание
5
#2199
Уровень задания: Легче ЕГЭ
Найдите последнюю цифру числа, равного (0! + 1! + 2! + 3! + dots + 2017!), если (0! = 1) – по определению.
Последняя цифра суммы равна последней цифре суммы последних цифр исходных слагаемых.
Так как при (ngeq 5) последняя цифра числа (n!) равна (0), то все числа вида (n!) при (ngeq 5) не дадут вклада в последнюю цифру исходной суммы.
Таким образом, последняя цифра исходной суммы совпадает с последней цифрой суммы [0! + 1! + 2! + 3! + 4!,] которая равна последней цифре суммы последних цифр её слагаемых, то есть последней цифре числа [1 + 1 + 2 + 6 + 4 = 14,] которой является цифра (4).
Ответ:
(4)
Задание
6
#2505
Уровень задания: Легче ЕГЭ
Последняя цифра числа (n^2) равна (4) ((ninmathbb{N})). Может ли предпоследняя цифра числа (n^2) быть нечётной?
Так как последняя цифра числа (n^2) равна (4), то (n^2) – чётное, следовательно, (n) – чётное, тогда (n^2) делится на (4), что равносильно тому, что число, образованное двумя последними цифрами числа (n^2), делится на (4).
Не более чем двузначные числа, у которых последняя цифра равна (4), которые и сами делятся на (4): [04,qquad 24,qquad 44,qquad 64,qquad 84,.]
Таким образом, предпоследняя цифра числа (n^2) обязательно чётна.
Ответ:
Нет
Задание
7
#2504
Уровень задания: Легче ЕГЭ
Можно ли составить из цифр (1), (2), (8), (9) (каждую цифру можно использовать сколько угодно раз) два числа, одно из которых в (17) раз больше другого?
Докажем методом от противного: пусть такие числа (m), (n) существуют. Пусть при этом (m = 17cdot n), тогда какой может быть последняя цифра числа (m)?
Ответ на последний вопрос зависит от последней цифры числа (n). Рассмотрим все возможные варианты:
1) последняя цифра числа (n) – это цифра (1), тогда последняя цифра числа (17n) – это цифра (7), но (m) не может содержать в своей записи цифру (7).
2) последняя цифра числа (n) – это цифра (2), тогда последняя цифра числа (17n) – это цифра (4), но (m) не может содержать в своей записи цифру (4).
3) последняя цифра числа (n) – это цифра (8), тогда последняя цифра числа (17n) – это цифра (6), но (m) не может содержать в своей записи цифру (6).
4) последняя цифра числа (n) – это цифра (9), тогда последняя цифра числа (17n) – это цифра (3), но (m) не может содержать в своей записи цифру (3).
Таким образом, подходящих (m) и (n) не существует.
Ответ:
Нет
ЕГЭ по математике — одно из самых сложных тестирований для выпускников. Многолетняя практика показала, что очень часто ученики допускают неточности при вычислении последней цифры натурального числа. Данная тематика сама по себе довольно сложна, так как требует особой точности, внимательности и развитого логического мышления. Чтобы без проблем справиться с подобными заданиями, рекомендуем воспользоваться удобным онлайн-сервисом «Школково». На нашем сайте вы найдете все необходимое для решений уравнений на нахождение последней ненулевой цифры числа и подтяните знания в смежных тематиках.
Сдавайте Единый государственный экзамен на «отлично» вместе со «Школково»!
Наш образовательный портал построен таким образом, чтобы выпускнику было максимально удобно готовиться к итоговой аттестации. Сначала ученик обращается к разделу «Теоретическая справка»: вспоминает правила решения уравнений, освежает в памяти важные формулы, которые помогают найти последнюю цифру числа. После этого переходит в «Каталоги», где находит множество задач различных уровней сложности. Если с каким-либо упражнением возникают затруднения, его можно перенести в «Избранное», чтобы вернуться к нему позже и решить самостоятельно либо с помощью преподавателя.
Специалисты «Школково» собрали, систематизировали и изложили материалы по теме в максимально простой и понятной форме. Таким образом большое количество информации усваивается в короткие сроки. Школьники смогут выполнять даже те задания, которые совсем недавно вызывали у них большие трудности, в том числе и те, где необходимо указать несколько решений.
Чтобы занятия проходили максимально эффективно, рекомендуем начать с наиболее легких примеров. Если они не вызвали сложностей, не теряйте время — переходите к задачам среднего уровня, так вы определите свои слабые стороны, сделаете упор на наиболее сложные для вас задания и добьетесь больших результатов. После ежедневных занятий в течение 1―2 недель вы сможете за пару минут вывести даже последнюю цифру числа Пи. Данное задание достаточно часто встречается в ЕГЭ по математике.
База упражнений на нашем портале постоянно обновляется и дополняется преподавателями с большим стажем. У школьников есть отличная возможность каждый день получать совершенно новые задания, а не зацикливаться на одних и тех же примерах, как зачастую приходится делать при повторении по школьному учебнику.
Начните занятия на сайте «Школково» уже сегодня, и результат не заставит себя ждать!
Обучение на нашем портале доступно всем желающим. Чтобы вы отслеживали свой прогресс и получали новые задания, созданные персонально для вас, зарегистрируйтесь в системе. Желаем вам удачной подготовки!
УСТАЛ? Просто отдохни
Improve Article
Save Article
Like Article
Improve Article
Save Article
Like Article
Given a number to find the first and last digit of a number.
Examples:
Input : 12345 Output : First digit: 1 last digit : 5 Input : 98562 Output : First digit: 9 last digit : 2
To find last digit of a number, we use modulo operator %. When modulo divided by 10 returns its last digit.
Suppose if n = 1234
then last Digit = n % 10 => 4
To find first digit of a number is little expensive than last digit. To find first digit of a number we divide the given number by 10 until number is greater than 10. At the end we are left with the first digit.
Approach 1 (With loop):
C++
#include <bits/stdc++.h>
using
namespace
std;
int
firstDigit(
int
n)
{
while
(n >= 10)
n /= 10;
return
n;
}
int
lastDigit(
int
n)
{
return
(n % 10);
}
int
main()
{
int
n = 98562;
cout << firstDigit(n) <<
" "
<< lastDigit(n) << endl;
return
0;
}
Java
import
java.util.*;
import
java.lang.*;
public
class
GfG{
public
static
int
firstDigit(
int
n)
{
while
(n >=
10
)
n /=
10
;
return
n;
}
public
static
int
lastDigit(
int
n)
{
return
(n %
10
);
}
public
static
void
main(String argc[])
{
int
n =
98562
;
System.out.println(firstDigit(n) +
" "
+ lastDigit(n));
}
}
Python3
def
firstDigit(n) :
while
n >
=
10
:
n
=
n
/
10
;
return
int
(n)
def
lastDigit(n) :
return
(n
%
10
)
n
=
98562
;
print
(firstDigit(n), end
=
" "
)
print
(lastDigit(n))
C#
using
System;
public
class
GfG{
public
static
int
firstDigit(
int
n)
{
while
(n >= 10)
n /= 10;
return
n;
}
public
static
int
lastDigit(
int
n)
{
return
(n % 10);
}
public
static
void
Main()
{
int
n = 98562;
Console.WriteLine(firstDigit(n) +
" "
+ lastDigit(n));
}
}
PHP
<?php
function
firstDigit(
$n
)
{
while
(
$n
>= 10)
$n
/= 10;
return
(int)
$n
;
}
function
lastDigit(
$n
)
{
return
((int)
$n
% 10);
}
$n
= 98562;
echo
firstDigit(
$n
) .
" "
.
lastDigit(
$n
) .
"n"
;
Javascript
<script>
function
firstDigit(n)
{
while
(n >= 10)
n /= 10;
return
Math.floor(n);
}
function
lastDigit(n)
{
return
Math.floor(n % 10);
}
let n = 98562;
document.write(firstDigit(n) +
" "
+ lastDigit(n));
</script>
Time Complexity: O(log10n)
Auxiliary Space: O(1)
Approach 2 (Without loop)
C++
#include <bits/stdc++.h>
using
namespace
std;
int
firstDigit(
int
n)
{
int
digits = (
int
)
log10
(n);
n = (
int
)(n /
pow
(10, digits));
return
n;
}
int
lastDigit(
int
n)
{
return
(n % 10);
}
int
main()
{
int
n = 98562;
cout << firstDigit(n) <<
" "
<< lastDigit(n) << endl;
return
0;
}
Java
import
java.math.*;
class
GFG {
static
int
firstDigit(
int
n)
{
int
digits = (
int
)(Math.log10(n));
n = (
int
)(n / (
int
)(Math.pow(
10
, digits)));
return
n;
}
static
int
lastDigit(
int
n)
{
return
(n %
10
);
}
public
static
void
main(String args[])
{
int
n =
98562
;
System.out.println(firstDigit(n) +
" "
+ lastDigit(n));
}
}
Python3
import
math
def
firstDigit(n) :
digits
=
(
int
)(math.log10(n))
n
=
(
int
)(n
/
pow
(
10
, digits))
return
n;
def
lastDigit(n) :
return
(n
%
10
)
n
=
98562
;
print
(firstDigit(n), end
=
" "
)
print
(lastDigit(n))
C#
using
System;
class
GFG {
static
int
firstDigit(
int
n)
{
int
digits = (
int
)(Math.Log10(n));
n = (
int
)(n / (
int
)(Math.Pow(10, digits)));
return
n;
}
static
int
lastDigit(
int
n)
{
return
(n % 10);
}
public
static
void
Main()
{
int
n = 98562;
Console.WriteLine(firstDigit(n) +
" "
+ lastDigit(n));
}
}
PHP
<?php
function
firstDigit(
$n
)
{
$digits
= (int)log10(
$n
);
$n
= (int)(
$n
/ pow(10,
$digits
));
return
$n
;
}
function
lastDigit(
$n
)
{
return
(
$n
% 10);
}
$n
= 98562;
echo
firstDigit(
$n
) ,
" "
,
lastDigit(
$n
),
"n"
;
?>
Javascript
<script>
function
firstDigit(n)
{
let digits = Math.floor(Math.log(n)/Math.log(10))
n = Math.floor(n / Math.pow(10, digits))
return
n;
}
function
lastDigit(n){
return
(n % 10)
}
let n = 98562;
document.write(firstDigit(n),
" "
)
document.write(lastDigit(n),
"</br>"
)
</script>
Time Complexity: O(log(log10(n))
Auxiliary Space: O(1)
Important note: log10() is a mathematical function present in math.h header file. It returns log base 10 value of the passed parameter to log10() function.
Approach 3: Using string operation to_string
First converting number to string and then first char of string and last character of string – ‘0’ is our ans.
C++
#include <iostream>
using
namespace
std;
int
main() {
int
n = 34356;
string s = to_string(n);
int
first_digit = s.front() -
'0'
;
int
last_digit = s.back() -
'0'
;
cout<<
"First digit of "
<<n<<
" is "
<<first_digit<<endl;
cout<<
"Last digit of "
<<n<<
" is "
<<last_digit<<endl;
}
Java
import
java.util.*;
public
class
Main {
public
static
void
main(String[] args) {
int
n =
34356
;
String s = Integer.toString(n);
int
first_digit = s.charAt(
0
) -
'0'
;
int
last_digit = s.charAt(s.length() -
1
) -
'0'
;
System.out.println(
"First digit of "
+ n +
" is "
+ first_digit);
System.out.println(
"Last digit of "
+ n +
" is "
+ last_digit);
}
}
Python3
n
=
34356
s
=
str
(n)
first_digit
=
int
(s[
0
])
last_digit
=
int
(s[
-
1
])
print
(
"First digit of"
, n,
"is"
, first_digit)
print
(
"Last digit of"
, n,
"is"
, last_digit)
C#
using
System;
public
class
GFG{
static
public
void
Main (){
int
n = 34356;
string
s = n.ToString();
int
first_digit = s[0] -
'0'
;
int
last_digit = s[s.Length - 1] -
'0'
;
Console.WriteLine(
"First digit of {0} is {1}"
, n, first_digit);
Console.WriteLine(
"Last digit of {0} is {1}"
, n, last_digit);
}
}
Javascript
let n = 34356;
let s = n.toString();
let first_digit = parseInt(s.charAt(0));
let last_digit = parseInt(s.charAt(s.length-1));
console.log(
"First digit of "
+ n +
" is "
+ first_digit);
console.log(
"Last digit of "
+ n +
" is "
+ last_digit);
Output
First digit of 34356 is 3 Last digit of 34356 is 6
Time Complexity: O(n)
Auxiliary Space: O(n)
Last Updated :
17 Mar, 2023
Like Article
Save Article
Основная часть
I. Нахождение последней цифры в записи
степени натурального числа.
После изучения темы “Степень с натуральным
показателем” была предложена такая задача:
найти последнюю цифру степеней:
а) , , , , ;
б) , .
Мы заметили, что в первом случае показатели
степеней составные числа, а во втором случае
показатели степеней простые числа. В обоих
случаях есть основания четные и нечетные. Мы
сначала попробовали представить степени в виде
произведения степеней с тем же основанием и
одинаковыми показателями, затем воспользовались
со свойствами степеней с натуральными
показателями
Например, = ***
или
В первом случае узнали последнюю цифру степени . Это 3. А дальше
определили искомую цифру как последнюю цифру
числа .
Получили 1. Во втором случае сначала нашли
последнюю цифру степени . Это 1. А 1 в любой степени -1.
Второй способ нам понравился больше. Аналогично
нашли последнюю цифру остальных степеней.
В ходе решения таких задач мы поняли, чтовсегда оканчивается (при натуральном) n
на 6.
Но вторая задача достаточно сложная, так как
показатели степеней простые числа и мы не
можем представить эти степени в виде
произведения степеней с одинаковыми
показателями, как делали раньше. Но мы нашли
способы решения.
Значит, последняя цифра степени равна 3.
Мы решили найти более удобный,
универсальный способ нахождения последней цифры
степени.
Решили заполнить таблицу, где в первой
строке написаны цифры, которыми оканчиваются
записи натуральных чисел. Во – второй строке –
цифры, которыми оканчиваются соответствующие
квадраты, в третьей – кубы и т.д.
Мы заполнили пятую строку, затем шестую и
удивились. Оказывается, пятая степень числа
оканчивается той же цифрой, что и первая степень
числа; а шестая степень числа оканчивается той же
цифрой, что и вторая степень этого числа; седьмая
степень – что и третья степень этого числа.
К нашему удивлению, результаты в таблице
повторяются через каждые четыре строки.
После решения этих примеров и заполнения
таблицы мы пришли к выводу, что:
- Во-первых, квадрат натурального числа может
оканчиваться любой цифрой; - Во-вторых, куб натурального числа может
оканчиваться любой цифрой; - В-третьих, четвертая степень натурального числа
может оканчиваться одной из цифр: 0, 1, 5, 6; - В-четвертых, пятая степень натурального числа
оканчивается той же цифрой, что и само число; - В-пятых, если запись натурального числа
оканчивается на 1, на 5, на 6, то любая степень этого
числа оканчивается соответственно на 1, на 5, на 6; - В-шестых, нечетные степени числа 4 оканчиваются
цифрой 4, а четные – цифрой 6.
Мы поставили перед собой такую задачу, а
нельзя ли найти способ определения последней
цифры степени по остатку от деления ее
показателя на 4.
II. Составление алгоритма нахождения
последней цифры степени по остатку от деления ее
показателя на 4.
Вернулись к нашим же примерам.
Найти последнюю цифру степеней: , , , ;.
Итак, мы заметили, что если остаток равен 0, то
для всех нечетных оснований, кроме чисел,
оканчивающихся на 5, искомая цифра равна 1, а
для четных, искомая цифра равна 6.
Далее мы начали подбирать такие степени, когда
при делении показателя степени на 4 получаются
остатки 1, 2, 3.
Например, .
Если остаток равен 1, то искомая цифра будет
равна последней цифре основания степени.
Если остаток равен 2, то искомая цифра будет
равна последней цифре в записи квадрата
основания.
Если остаток равен 3, то искомая цифра будет
равна последней цифре в записи куба основания.
А если степени с очень большими показателями?
Например,
Мы легко справились и с этой задачей.
Итак, мы получили алгоритм нахождения
последней цифры степени натурального числа.
Чтобы найти последнюю цифру степени
натурального числа с натуральным показателем,
надо:
Найти остаток от деления показателя степени на
4;
Если остаток равен
а) 1, то искомая цифра будет совпадать с
последней цифрой основания степени;
б) 2, то искомая цифра будет равна последней
цифре в записи квадрата основания;
в) 3, то искомая цифра будет равна последней
цифре в записи куба основания;
г) 0, то для всех нечетных оснований, кроме чисел,
оканчивающихся на 5, искомая цифра равна 1, а для
четных, кроме круглых чисел, искомая цифра равна
6.
Мы научились быстро находить последнюю цифру
степени и попробовали расширить круг знаний.
Например, мы составили такие задачи.
III. Составление упражнений на применение
алгоритма.
1. Доказать, что число кратно 2.
2. Доказать, что -1 кратно 5 (при натуральном n).
3. Верно ли, что 1,6*( -1 ) – целое число при любом
(натуральном) n.
4. Какой цифрой оканчивается произведение всех
двузначных чисел, каждое из которых оканчивается
на 7?
При помощи операции нахождения остатка и целочисленного деления можно достаточно несложно вычислить любую цифру числа.
Рассмотрим программу получения цифр двузначного числа:
num = 17
a = num % 10
b = num // 10
print(a)
print(b)
Результатом выполнения программы будут два числа:
7
1
То есть сначала мы вывели последнюю цифру числа, а затем первую цифру.
Запомни: последняя цифра числа определяется всегда как остаток от деления числа на 10 (% 10)
. Чтобы отщепить последнюю цифру от числа, необходимо разделить его нацело на 10 (// 10)
.
Рассмотрим программу получения цифр трёхзначного числа:
num = 754
a = num % 10
b = (num % 100) // 10
c = num // 100
print(a)
print(b)
print(c)
Результатом выполнения программы будут три числа:
4
5
7
То есть сначала мы вывели последнюю цифру числа, затем среднюю цифру, а затем первую цифру.
Алгоритм получения цифр n-значного числа
Несложно понять, по какому алгоритму можно найти каждую цифру n-значного числа num
:
- Последняя цифра:
(num % 101) // 100
; - Предпоследняя цифра:
(num % 102) // 101
; - Предпредпоследняя цифра:
(num % 103) // 102
; - …..
- Вторая цифра:
(num % 10n-1) // 10n-2
; - Первая цифра:
(num % 10n) // 10n-1
.
Решение задач
Задача 1. Напишите программу, определяющую число десятков и единиц в двузначном числе.
Решение. Число единиц – это последняя цифра числа, число десятков – первая цифра. Чтобы получить последнюю цифру любого числа, нужно найти остаток от деления числа на 10. Чтобы найти первую цифру двузначного числа, нужно поделить число нацело на 10. Программа, решающая поставленную задачу, может иметь следующий вид:
num = int(input())
last_digit = num % 10
first_digit = num // 10
print('Число десятков =', first_digit)
print('Число единиц =', last_digit)
Задача 2. Напишите программу, в которой рассчитывается сумма цифр двузначного числа.
Решение. Программа, решающая поставленную задачу, может иметь следующий вид:
num = int(input())
last_digit = num % 10
first_digit = num // 10
print('Сумма цифр =', last_digit + first_digit)
Задача 3. Напишите программу, которая печатает число, образованное при перестановке цифр двузначного числа.
Решение. Программа, решающая поставленную задачу, может иметь следующий вид:
num = int(input())
last_digit = num % 10
first_digit = num // 10
print('Искомое число =', last_digit * 10 + first_digit)
Задача 4. Напишите программу, в которую вводится трёхзначное число и которая выводит на экран его цифры (через запятую).
Решение. Программа, решающая поставленную задачу, может иметь следующий вид:
num = int(input())
digit3 = num % 10
digit2 = (num // 10) % 10
digit1 = num // 100
print(digit1, digit2, digit3, sep=',')
Задача. Дано натуральное число N. Вывести его последнюю цифру.
Приведем 3 способа решения данной задачи:
- с использованием операции mod;
- с использованием строкового типа данных string;
- с использованием функции digits из модуля School.
Способ 1 (с использованием операции mod)
Последняя цифра натурального числа показывает количество единиц в числе. Вычислим эту цифру делением на 10.
Воспользуемся операцией целочисленного деления mod.
Покажем деление нацело на схеме:
Если вычислить целый остаток от деления числа на 10 – это и будет последняя цифра числа.
Операция вычисления целого остатка от деления в языке Паскаль – это mod.
Запишем выражение для вычисления последней цифры натурального числа N:
d:=N mod 10;
Программа для решения задачи на языке Паскаль
var N,d:integer;
begin
println(‘Введите натуральное число N’);
readln(N);
d:=N mod 10; //целый остаток от деления числа N на 10
println(‘Последняя цифра числа’,d);
end.
Результат запуска программы
Дополнительно об операциях целочисленного деления div и mod (читать).
Способ 2 (с использованием строкового типа данных string)
var N,d:integer; str:string; c:char;
begin
println(‘Введите натуральное число’);
readln(N);
str:=N.ToString; //преобразовать число N в строку str
c:=str[str.length]; //последний символ строки str
d:=c.ToDigit; //преобразовать символ в цифру
println(‘Последняя цифра числа’,d);
end.
Способ 3 (с использованием функции digits из модуля School)
uses school;
var N,d:integer;
mas:array of integer;
begin
println(‘Введите натуральное число’);
readln(N);
mas:=digits(N).toArray;//получение списка цифр и преобразование списка в массив
d:=mas[mas.Length-1];//последний элемент массива mas
println(‘Последняя цифра числа’,d);
end.
Каким способом следует воспользоваться для решения следующей задачи:
Дано натуральное число. Вычислить сумму его цифр.