我们给定一个数字N。目标是计算不超过N的数字,这些数字既是完美的平方,又是完美的立方体。例如,1,64既是完美的正方形又是完美的立方体。
我们将使用sqrt()计算平方根,使用cbrt()计算数字的立方根。
让我们通过示例来理解。
输入-N = 100
输出-完美的正方形和立方体的数量计数-2
说明-1和64只是从1到100的数字,它们都是完美的正方形和立方体。
输入-N = 5000
输出-完美的正方形和立方体的数量计数-3
说明-1、64和4096只是从1到5000的数字,它们都是理想的正方形和立方体。
我们取整数N。
函数getCount(int n)取N并返回最大为N的数字的计数,它们都是理想平方和理想立方体。
将初始计数设为0。
从i = 1到i = N,如果floor(sqrt(i))== ceil(sqrt(i)),则i是理想正方形。
现在检查floor(cbrt(i))== ceil(cbrt(i)),如果为true,我也是一个完美的立方体。增量计数。
在循环结束时,返回计数为结果。
#include <bits/stdc++.h> #include <math.h> using namespace std; int getCount(int n){ int count=0; for(int i=1;i<=n;i++){ if(floor(sqrt(i))==ceil(sqrt(i))){ if(floor(cbrt(i))==ceil(cbrt(i))){ count++; //cout<<i<<" "; } } } return count; } int main(){ int N=100; cout<<endl<<"Numbers upto N that are perfect squares and perfect cubes:"<<getCount(N); return 0; }
输出结果
如果我们运行上面的代码,它将生成以下输出-
Numbers upto N that are perfect squares and perfect cubes:2