未加星标

Is the entire root of the cube?

字体大小 | |
[开发(python) 所属分类 开发(python) | 发布者 店小二05 | 时间 2019 | 作者 红领巾 ] 0人收藏点击收藏

This seems to be simple but I cannot find a way to do it. I need to show whether the cube root of an integer is integer or not. I used is_integer() float method in python 3.4 but that wasn't successful. As

x = (3**3)**(1/3.0) is_integer(x) True

but

x = (4**3)**(1/3.0) is_integer(x) False

I tried x%1 == 0 , x == int(x) and isinstance(x,int) with no success.

I'd appreciate any comment.

For small numbers (<~10 13 or so), you can use the following approach:

def is_perfect_cube(n): c = int(n**(1/3.)) return (c**3 == n) or ((c+1)**3 == n)

This truncates the floating-point cuberoot, then tests the two nearest integers.

For larger numbers, one way to do it is to do a binary search for the true cube root using integers only to preserve precision:

def find_cube_root(n): lo = 0 hi = n while lo < hi: mid = (lo+hi)//2 if mid**3 < n: lo = mid+1 else: hi = mid return lo def is_perfect_cube(n): return find_cube_root(n)**3 == n

本文开发(python)相关术语:python基础教程 python多线程 web开发工程师 软件开发工程师 软件开发流程

分页:12
转载请注明
本文标题:Is the entire root of the cube&amp;quest;
本站链接:https://www.codesec.net/view/628353.html


1.凡CodeSecTeam转载的文章,均出自其它媒体或其他官网介绍,目的在于传递更多的信息,并不代表本站赞同其观点和其真实性负责;
2.转载的文章仅代表原创作者观点,与本站无关。其原创性以及文中陈述文字和内容未经本站证实,本站对该文以及其中全部或者部分内容、文字的真实性、完整性、及时性,不作出任何保证或承若;
3.如本站转载稿涉及版权等问题,请作者及时联系本站,我们会及时处理。
登录后可拥有收藏文章、关注作者等权限...
技术大类 技术大类 | 开发(python) | 评论(0) | 阅读(41)