📜  检查彼得森数的程序

📅  最后修改于: 2022-05-13 01:57:58.775000             🧑  作者: Mango

检查彼得森数的程序

如果数字的每个数字的阶乘之和等于数字本身,则称该数字为彼得森数。

例子:

Input : n = 145
Output = Yes
Explanation:
 145 = 5! + 4! + 1!
     = 120 + 24 +1
     = 145

Input  : n = 55
Output : No
Explanation: 5! + 5!
            = 120 + 120
            = 240
Since 55 is not equal to 240
It is not a Peterson number.     

我们将选择给定数字的每个数字(从最后一个数字开始)并找到它的阶乘。并添加所有阶乘。最后,我们检查阶乘之和是否等于数字。

C++
// C++ program to determine whether the number is
// Peterson number or not
#include 
using namespace std;
 
// To quickly find factorial of digits
int fact[10]
    = { 1, 1, 2, 6, 24, 120, 720, 5040, 40320, 362880 };
 
// Function to check if a number is Peterson
// or not
bool peterson(int n)
{
    int num = n, sum = 0;
 
    // stores the sum of factorials of
    // each digit of the number.
    while (n > 0) {
        int digit = n % 10;
        sum += fact[digit];
        n = n / 10;
    }
 
    // Condition check for a number to
    // be a Peterson Number
    return (sum == num);
}
 
// Driver Program
int main()
{
    int n = 145;
    if (peterson(n))
        cout << "Yes";
    else
        cout << "No";
    return 0;
}


Java
//checks whether a number entered by user is peterson number or not
import java.util.*;
class GFG
{
    public static void main(String args[])
    {
        Scanner sc=new Scanner(System.in);
      //taking input from the user
      System.out.println("Enter the number");
        int num=sc.nextInt();
        int temp=num;//storing the number in a temporary variable
        int f=1,sum=0;
        while(num!=0)//running while loop until number becomes zero
        {
            f=1;
          //extracting last digit of the number
          //and storing in r
            int r=num%10;
          //for loop to find the factorial of a digit
            for(int i=1;i<=r;i++)
            {
                f=f*i;
            }
            sum=sum+f;//adding the factotial of the digits
            num=num/10;
        }
      //checking if the sum of the factorial of digits
      //is equal to the number or not
        if(sum==temp)
        System.out.println("PETERSON NUMBER");
        else
        System.out.println("NOT PETERSON NUMBER");
    }
    }


Python3
# Python3 code to determine whether the
# number is Peterson number or not
 
# To quickly find factorial of digits
fact = [1, 1, 2, 6, 24, 120, 720,
        5040, 40320, 362880]
 
# Function to check if a number
# is Peterson or not
 
 
def peterson(n):
    num = n
    sum = 0
 
    # stores the sum of factorials of
    # each digit of the number.
    while n > 0:
        digit = int(n % 10)
        sum += fact[digit]
        n = int(n / 10)
 
    # Condition check for a number
    # to be a Peterson Number
    return (sum == num)
 
 
# Driver Code
n = 145
print("Yes" if peterson(n) else "No")
 
# This code is contributed by "Sharad_Bhardwaj"..


C#
// C# program to determine whether the
// number is Peterson number or not
using System;
 
public class GFG {
 
    // To quickly find factorial of digits
    static int[] fact
        = new int[10] { 1,   1,   2,    6,     24,
                        120, 720, 5040, 40320, 362880 };
 
    // Function to check if a number is
    // Peterson or not
    static bool peterson(int n)
    {
        int num = n;
        int sum = 0;
 
        // stores the sum of factorials of
        // each digit of the number.
        while (n > 0) {
            int digit = n % 10;
            sum += fact[digit];
            n = n / 10;
        }
 
        // Condition check for a number to
        // be a Peterson Number
        return (sum == num);
    }
 
    // Driver Program
    static public void Main()
    {
        int n = 145;
 
        if (peterson(n))
            Console.WriteLine("Yes");
        else
            Console.WriteLine("No");
    }
}
 
// This code is contributed by vt_m.


PHP
 0)
    {
        $digit = $n % 10;
        $n = $n / 10;    
    }
 
    // Condition check for
    // a number to be a
    // Peterson Number
    return ($sum == $num);
}
 
    // Driver Code
    $n = 145;
    if (peterson($n))
        echo "Yes";
    else
        echo"No";
     
// This code is contributed by ajit
?>


Javascript


输出: