número casi perfecto

Dado un número n, comprobar si es el número Casi Perfecto o no. Un número casi perfecto es un número natural cuya suma de todos los divisores, incluido el 1 y el propio número, es igual a 2n – 1 .
Ejemplo : 
 

Input: n = 16
Output: Yes
Explanation: sum of divisors = 1 + 2 + 4 + 8 + 16 = 31 = 2n - 1

Input: n = 9
Output: No
Explanation: sum of divisors = 1 + 3 + 9 ≠ 2n - 1

C++

// CPP program to check if a number
// is almost perfect.
#include <bits/stdc++.h>
using namespace std;
 
bool isAlmostperfect(int n)
{
    int divisors = 0;
 
    for (int i = 1; i <= n; i++) {
 
        // store sum of divisors of n
        if (n % i == 0)
            divisors += i;
    }
 
    // sum of divisors = 2*n - 1
    if (divisors == 2 * n - 1)
        return true;
 
    return false;
}
 
int main()
{
    int n = 16;
    if (isAlmostperfect(n))
        cout << "Yes";
    else
        cout << "No";
}

Java

// Java program to check if a
// number is almost perfect.
 
class GFG {
     
// Function to check number is
// almost perfect or not
static boolean isAlmostperfect(int n)
{
    int divisors = 0;
 
    for (int i = 1; i <= n; i++)
    {
 
        // store sum of divisors of n
        if (n % i == 0)
            divisors += i;
    }
 
    // sum of divisors = 2*n - 1
    if (divisors == 2 * n - 1)
        return true;
 
    return false;
}
 
// Driver Code
public static void main(String[] args)
{
    int n = 16;
    if (isAlmostperfect(n))
        System.out.println("Yes");
    else
        System.out.println("No");
}
}
 
// This code is contributed by
// Smitha Dinesh Semwal.

Python3

# Python program to check if a number
# is almost perfect.
def isAlmostperfect(n):
 
    divisors = 0
    for i in range(1, n+1):
 
        # store sum of divisors of n
        if (n % i == 0):
            divisors = divisors + i
 
    # sum of divisors = 2*n - 1
    if (divisors == 2 * n - 1):
        return True
    else:
        return False
 
# Driver code
n = 16
if (isAlmostperfect(n)):
    print ("Yes")
else:
    print ("No")
 
# This code is contributed by
# Manish Shaw (manishshaw1)

C#

// C# program to check if a
// number is almost perfect.
using System;
 
class GFG
{
     
    // Function to check number is
    // almost perfect or not
    static bool isAlmostperfect(int n)
    {
        int divisors = 0;
     
        for (int i = 1; i <= n; i++)
        {
     
            // store sum of divisors of n
            if (n % i == 0)
                divisors += i;
        }
     
        // sum of divisors = 2 * n - 1
        if (divisors == 2 * n - 1)
            return true;
     
        return false;
    }
 
    // Driver Code
    static public void Main ()
    {
        int n = 16;
         
        if (isAlmostperfect(n))
            Console.WriteLine("Yes");
        else
            Console.WriteLine("No");
    }
}
 
// This code is contributed by Ajit.

PHP

<?php
// PHP program to check if a
// number is almost perfect.
 
// function to check
// almost perfect
function isAlmostperfect($n)
{
    $divisors = 0;
 
    for ($i = 1; $i <= $n; $i++)
    {
 
        // store sum of
        // divisors of n
        if ($n % $i == 0)
            $divisors += $i;
    }
 
    // sum of divisors = 2*n - 1
    if ($divisors == 2 * $n - 1)
        return true;
 
    return false;
}
 
// Driver code
$n = 16;
if (isAlmostperfect($n))
    echo("Yes");
else
    echo("No");
 
// This code is contributed by Ajit.
?>

Javascript

<script>
 
// Javascript program to check if a number
// is almost perfect.
 
function isAlmostperfect( n)
{
    let divisors = 0;
 
    for (let i = 1; i <= n; i++) {
 
        // store sum of divisors of n
        if (n % i == 0)
            divisors += i;
    }
 
    // sum of divisors = 2*n - 1
    if (divisors == 2 * n - 1)
        return true;
 
    return false;
}
 
    // Driver Code
    let n = 16;
    if (isAlmostperfect(n))
        document.write("Yes");
    else
        document.write("No");
        
</script>
Producción: 

Yes

 

Se encuentra que los números casi perfectos son de la forma 2^k(k = 0, 1, 2, 3, 4, ..). Sin embargo, no está probado.
 

Publicación traducida automáticamente

Artículo escrito por jaideeppyne1997 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *