杜德尼数字

发布于 2024-09-13 18:42:41 字数 4402 浏览 15 评论 0

给定整数n ,任务是检查n是否为 Dudeney 数字。 Dudeney 数字是一个正整数,是一个完美的立方体,因此其十进制数字的总和等于该数字的立方体根。

例子:

Input: N = 19683
Output: Yes
19683 = 273 and 1 + 9 + 6 + 8 + 3 = 27

Input: N = 75742
Output: No

方法:

  • 检查 n 是否是一个完美的立方体,如果不是,则它不能是 Dudeney 数。
  • 如果 n 是一个完美的立方体,则计算其数字的总和。如果其数字的总和等于其立方根,则为 Dudeney 数字,否则为非。

下面是上述方法的实现:

C++

// C++ implementation of the approach
#include 
using namespace std;
  
// Function that returns true if
// n is a Dudeney number
bool isDudeney(int n)
{
    int cube_rt = int(round((pow(n, 1.0 / 3.0))));
  
    // If n is not a perfect cube
    if (cube_rt * cube_rt * cube_rt != n)
        return false;
  
    int dig_sum = 0;
    int temp = n;
    while (temp > 0) {
  
        // Last digit
        int rem = temp % 10;
  
        // Update the digit sum
        dig_sum += rem;
  
        // Remove the last digit
        temp /= 10;
    }
  
    // If cube root of n is not equal to
    // the sum of its digits
    if (cube_rt != dig_sum)
        return false;
  
    return true;
}
  
// Driver code
int main()
{
    int n = 17576;
    if (isDudeney(n))
        cout << "Yes";
    else
        cout << "No";
  
    return 0;
}

Java

// Java implementation of the approach
import java.lang.Math;
  
class GFG
{
      
// Function that returns true if
// n is a Dudeney number
static boolean isDudeney(int n)
{
    int cube_rt = (int)(Math.round((Math.pow(n, 1.0 / 3.0))));
  
    // If n is not a perfect cube
    if (cube_rt * cube_rt * cube_rt != n)
        return false;
  
    int dig_sum = 0;
    int temp = n;
    while (temp > 0)
    {
  
        // Last digit
        int rem = temp % 10;
  
        // Update the digit sum
        dig_sum += rem;
  
        // Remove the last digit
        temp /= 10;
    }
  
    // If cube root of n is not equal to
    // the sum of its digits
    if (cube_rt != dig_sum)
        return false;
  
    return true;
}
  
// Driver code
public static void main(String[] args)
{
    int n = 17576;
    if (isDudeney(n))
        System.out.println("Yes");
    else
        System.out.println("No");
}
}
  
// This code is contributed by Code_Mech.

Python3

# Python implementation of the approach
  
# Function that returns true if 
# n is a Dudeney number
def isDudeney(n):
    cube_rt = int(round((pow(n, 1.0 / 3.0))))
  
    # If n is not a perfect cube
    if cube_rt * cube_rt * cube_rt != n:
        return False
  
    dig_sum = 0
    temp = n
    while temp>0:
          
        # Last digit
        rem = temp % 10
          
        # Update the digit sum
        dig_sum += rem
          
        # Remove the last digit
        temp//= 10
  
    # If cube root of n is not equal to 
    # the sum of its digits
    if cube_rt != dig_sum:
        return False
  
    return True
  
# Driver code
if __name__ == '__main__':
      
    n = 17576
    if isDudeney(n):
        print("Yes")
    else:
        print("No")

C#

// C# implementation of the approach
using System;
  
class GFG
{
      
// Function that returns true if
// n is a Dudeney number
static bool isDudeney(int n)
{
    int cube_rt = (int)(Math.Round((Math.Pow(n, 1.0 / 3.0))));
  
    // If n is not a perfect cube
    if (cube_rt * cube_rt * cube_rt != n)
        return false;
  
    int dig_sum = 0;
    int temp = n;
    while (temp > 0)
    {
  
        // Last digit
        int rem = temp % 10;
  
        // Update the digit sum
        dig_sum += rem;
  
        // Remove the last digit
        temp /= 10;
    }
  
    // If cube root of n is not equal to
    // the sum of its digits
    if (cube_rt != dig_sum)
        return false;
  
    return true;
}
  
// Driver code
public static void Main()
{
    int n = 17576;
    if (isDudeney(n))
        Console.Write("Yes");
    else
        Console.Write("No");
}
}
  
// This code is contributed 
// by Akanksha Rai

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

绅刃

暂无简介

0 文章
0 评论
23 人气
更多

推荐作者

6118422078

文章 0 评论 0

Bonjour°[大白

文章 0 评论 0

別甾虛僞

文章 0 评论 0

qq_FynBW0

文章 0 评论 0

浅笑依然

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文