链接:https://ac.nowcoder.com/acm/contest/3007/E
来源:牛客网

立方数

时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 262144K,其他语言524288K
64bit IO Format: %lld

题目描述

对于给定的正整数 N,求最大的正整数 A,使得存在正整数 B,满足 A3B=N

输入包含 T 组数据,1≤T≤10,000;1≤N≤1018

输入描述:

 

第一行数字 T 表示数据组数

接下来一行,T 个正整数 N

输出描述:

 

T 行,每行一个数字表示答案

示例1

输入

复制4 27 24 7 54

4
27 24 7 54

输出

复制3 2 1 3

3
2
1
3

记得cbrt(n)+0.5  四舍五入  !!!

“牛顿迭代法快速寻找平方根”文章

求出根号a的近似值:首先随便猜一个近似值x,然后不断令x等于x和a/x的平均数,迭代个六七次后x的值就已经相当精确了。 
例如,我想求根号2等于多少。假如我猜测的结果为4,虽然错的离谱,但你可以看到使用牛顿迭代法后这个值很快就趋近于根号2了: 
(       4  + 2/4        ) / 2 = 2.25 
(     2.25 + 2/2.25     ) / 2 = 1.56944.. 
( 1.56944..+ 2/1.56944..) / 2 = 1.42189.. 
( 1.42189..+ 2/1.42189..) / 2 = 1.41423.. 
....
这种算法的原理很简单,我们仅仅是不断用(x,f(x))的切线来逼近方程x^2-a=0的根。根号a实际上就是x^2-a=0的一个正实根,这个函数的导数是2x。也就是说,函数上任一点(x,f(x))处的切线斜率是2x。那么,x-f(x)/(2x)就是一个比x更接近的近似值。代入 f(x)=x^2-a得到x-(x^2-a)/(2x),也就是(x+a/x)/2。

#include<bits/stdc++.h>
#define ll long long
using namespace std;
const int N=31700;
bool mark[N];
int prim[N];
ll Prim[N];
int cnt;
void initial()
{cnt=0;for (int i=2 ; i<N ; ++i){if (!mark[i]){Prim[cnt]=1ll*i*i*i;prim[cnt++]=i;}for (int j=0 ; j<cnt && i*prim[j]<N ; ++j){mark[i*prim[j]]=1;if (!(i%prim[j]))break;}}
}
ll f(ll a)
{return a*a*a;
}
int main()
{initial();int T;scanf("%d",&T);while(T--){ll ans=1;ll n;scanf("%lld",&n);map <int,int> mp;for(int i=0;i<cnt;i++){       while(n%(Prim[i])==0){              ans*=prim[i]; n/=Prim[i];if(n==1||n==0) break;}while(n%prim[i]==0){n/=prim[i];if(n==1||n==0) break;}if(n==1||n==0) break;                    } ll nn=cbrt(n)+0.5;      if(nn*nn*nn==n ) ans*=nn;printf("%lld\n",ans);}
}

立方数 唯一分解 开方四舍五入相关推荐

  1. python开方运算符_Pytorch Tensor基本数学运算详解

    1. 加法运算 示例代码: import torch # 这两个Tensor加减乘除会对b自动进行Broadcasting a = torch.rand(3, 4) b = torch.rand(4) ...

  2. 用python计算矩形面积结果四舍五入保留两位小数_你还在计算器开平方?太low了吧,学霸考场都用这种方法开平方...

    一般情况下,我们生活中遇到一个需要开平方的数时,第一反应就是拿手机计算器计算,但考试时怎么做?不让带计算器,包括具有计算功能的手表都严禁携带.那这个时候怎么做呢?手算开平方就是一种随时适用的方法,无论 ...

  3. 开方 质数_如何心算大数的高次开方(个人观点)

    电视节目<最强大脑>有一期展示了高次开方的心算,节目嘉宾出的一道题是开14次方,被开方数有16位.心算者的题目 心算者的答案为"12.0--",计算器给出的精确答案为1 ...

  4. php 根号2计算过程,根号换算(开方计算器在线)

    2分之根号2和3分之根号三的计算过程 根号就是要求开方!开方分平方和立方两种!中学生有数学用表,可以在表中查出相应数值!如果用竖式自己算,就要列竖式计算!常用的根号2.根号3等都要记住-- √a+√b ...

  5. OpenCV的各种矩阵基本运算、基本操作及示例代码(加、减、乘、点乘、点除、乘方、开方、累加、转置、比较等)

    OpenCV的各种矩阵基本运算.基本操作及示例代码(加.减.乘.点乘.点除.乘方.开方.累加.转置.比较等) OpenCV的各种矩阵基本运算.基本操作及示例代码 目录 01-两个矩阵相加.矩阵和标量相 ...

  6. 【机试备考】Day15-Special数 | 平方数立方数判断

    题目 BUPT 2017 计算机 ProblemA 设一个正整数既是平方数又是立方数时,称之为Special数.输入包含多组测试用例,第一行输入测试数据的组数,接着在后续每行输入n的时候,请输出1到n ...

  7. 每日一题:由卢卡斯队列引出java四舍五入

    一.题目引出 黄金分割数 0.6180.6180.618 与美学有重要的关系.舞台上报幕员所站的位置大约就是舞台宽度的 0.6180.6180.618 处,墙上的画像一般也挂在房间高度的 0.6180 ...

  8. JAVA-幂方和开方

    JAVA-幂方和开方 一.保留小数点后的n位 /***保留两位小数*/double m = 1.025;//方式一-打印System.out.println(String.format("% ...

  9. 1507四舍五入c语言,JavaScript中用于四舍五入的Math.round()方法讲解

    此方法返回一个数四舍五入为最接近的整数的值. 语法 Math.round( x ) ; 下面是参数的详细信息: x: 一个数字 返回值: 返回数字四舍五入为最接近的整数的值. 例子: JavaScri ...

最新文章

  1. 【基础】EM 还是 REM?这是一个问题!
  2. Cisco ASA防火墙基础
  3. update关联其他表批量更新数据
  4. 欢迎来到开源的世界!
  5. IDEA如何在包下建立子包
  6. 季节性时间序列数据分析_如何指导时间序列数据的探索性数据分析
  7. 数字图像处理:四连通域与八连通域
  8. 递归法:走楼梯; 旋转数组的最小数字(递归法和改进二分法)
  9. BZOJ 5319: [Jsoi2018]军训列队(可持久化线段树)
  10. 存储过程别忘了写最后一句话,别忘了类型转换
  11. 18th, Oct 端正心态,积蓄实力,等待爆发的一刻
  12. python libusb_使用python开发usb的两种方式(windriver与pyusb)
  13. 车型代号对照表_2017年最新主机厂车型代号对照表
  14. json文件简介及借助于python解析json文件
  15. Lnmp部署tp5项目报错:require(): open_basedir restriction in effect. File(/home/wwwroot/api.321.design/think
  16. 自定义微信小程序顶部导航栏(自适应微信胶囊按钮,flex布局)
  17. BOXI3 SDK 检索所有使用了某个universe object的报表
  18. 印象笔记android,印象笔记(Evernote) Android SDK 更新
  19. 2020移动apn接入点哪个快_为什么别人的4g网总比你快? 手机这个设置没开启, 难怪网络...
  20. SQL Server 2008 问题——已成功与服务器建立连接,但是在登录过程中发生错误。

热门文章

  1. C# 之 Ocelot 使用
  2. 气象数据的可视化展现形式
  3. mfc通过ado链接oracle,MFC通过ADO连接Oracle数据库
  4. 前端 js实现模糊搜索
  5. CPU芯片里有几亿个晶体管制作流程
  6. PHP代码审计DVWASQL注入[SQL Injection]
  7. Latex排版常用数学符号表示方法
  8. 【Unity入门】10.物体的运动
  9. BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding
  10. python多媒体应用:使用python和win32gui一步步教你按需截图和图片文字识别