计算C中最高达N的数字,它们都是完美的平方和完美的立方

我们给定一个数字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