Дано целое положительное число n. Сколько решений в целых положительных числах имеет уравнение 1 / n = 1 / x + 1 / y ?
Целое число n (1 ≤ n ≤ 109
).
Количество решений данного уравнения в натуральных числах.
#include <iostream>
#include <math.h>
using namespace std;
int main() {
int c, i, n, res = 1;
scanf("%d", &n);
//Для каждого простого делителя i числа n подсчитываем степень c, с которой он входит в n.Умножаем результат res на 2c + 1.
for (i = 2; i <= sqrt(1.0*n); i++)
{
for (c = 0; n % i == 0; c++) n /= i;
res = res * (2 * c + 1);
}
//Если n > 1 по окончанию цикла, то оно равно простому делителю исходного числа n.
//Этот делитель входит в n со степенью 1, следовательно res необходимо умножить на 2 * 1 + 1 = 3.
if (n > 1) res *= 3;
printf("%d\n", res);
return 0;
}
Есть решение которого нет на сайте? Пиши admin@devexe.top