Buscando logarítmica íntimo

Tratando de cerrar menor que el número de 20.000. El llamado cerca logarítmica, es decir, A, además de un factor entero todo fuera de sí misma igual a la suma de B, B, además de número entero exterior en sí todos los factores es igual a A.
Requisitos: una función de escritura para encontrar un número entero de sí mismo, además de todos los factores de la suma del exterior (Nota 1 es cualquier factor entero).
requisitos de formato:

El número entero positivo de entrada de usuario n representa el n-ésimo logaritmo íntima deseada (logaritmo de cierre dispuestos en incrementos numéricos). Por ejemplo, si un usuario entra en "1", los productos del programa "220 284" denota: el número de la primera pareja está cerca de 220 y 284 (primer valor de salida del número más pequeño, a continuación, un espacio, entonces el valor de salida del número más grande) . La presentación del código no puede tener otra cin no deseada y la declaración cout
resultados son los siguientes:
Entrada: 1
Salida: 220284

#include <iostream>
#include <cmath>
using namespace std;
int logarithm(int);
int main()
{
    int n, k=0;
    cin>>n;
    for(int a=200; a<=20000; a++)
    {
        int b = logarithm(a);
        if(logarithm(b)==a && a<b)
        {
            k++;
            if(k == n)
                cout<<a<<" "<<b;
        }
    }
    return 0;
}
int logarithm(int x)
{
    int sum=0;
    for(int i=1; i<=sqrt(x); i++)
    {
        if(x%i == 0)
        {
            int k = x/i;
            sum += i+k;
            if(k == i || k == x)
            sum = sum - k;
        }
    }
    return sum;
}
Publicados 102 artículos originales · ganado elogios 93 · vistas 4976

Supongo que te gusta

Origin blog.csdn.net/huangziguang/article/details/104631092
Recomendado
Clasificación