Если мы разделим некоторое целое число P на целое число N, то получим целое число r и целый остаток s. Тогда можно записать, что P = r × N + s.
Вспомним, что для перевода числа P в систему счисления по оcнованию N мы последовательно делим P на N до тех пор, пока P ≥ N и выписываем остатки, а потом записываем эти остатки в обратном порядке. Следовательно, первый из полученных остатков будет последней цифрой числа P в системе по основанию N.
Переведем 139 в систему счисления по основанию 8.
139 / 8 = 17, остаток 3
17 / 8 = 2, остаток 1
2 / 8 = 0, остаток 2
Выписываем остатки в обратном порядке: 213. Как и ожидалось, последняя цифра полученного числа и есть остаток от деления числа на основание системы счисления.
Важное замечание: Для типа long long int требуется от компилятора поддержка стандарта C99.
Приложил файл расширения .cpp, чтобы обойти ограничение сайта. При работе с кодом измените на .c
#include <stdio.h>
long long int NOD(long long int var1, long long int var2) //Алгоритм Евклида
{
while(var1 != var2)
{
if(var1 > var2)
var1 = var1 - var2;
else var2 = var2 - var1;
}
return var1;
}
long long int NOK(long long int var1, long long int var2)
{
return (var1 * var2) / NOD(var1, var2);
}
int main()
{
long long int N, K;
scanf("%lli%lli", &N, &K);
printf("Количество оборотов: %lli\n", NOK(N, K));
}
Если мы разделим некоторое целое число P на целое число N, то получим целое число r и целый остаток s. Тогда можно записать, что P = r × N + s.
Вспомним, что для перевода числа P в систему счисления по оcнованию N мы последовательно делим P на N до тех пор, пока P ≥ N и выписываем остатки, а потом записываем эти остатки в обратном порядке. Следовательно, первый из полученных остатков будет последней цифрой числа P в системе по основанию N.
Переведем 139 в систему счисления по основанию 8.
139 / 8 = 17, остаток 3
17 / 8 = 2, остаток 1
2 / 8 = 0, остаток 2
Выписываем остатки в обратном порядке: 213. Как и ожидалось, последняя цифра полученного числа и есть остаток от деления числа на основание системы счисления.