日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

無立方因子的數是指那些沒有立方數作為因子的數。

立方數因子是指一個整數,它是一個立方數并且能夠整除該數而沒有余數。

例如,8是16的立方數因子,因為8是2的立方數(2*2*2 = 8),并且8除以16的余數為零。

因此,8和16都不是無立方數。

問題陳述

找出所有小于給定數字n的無立方數。

Example

的翻譯為:

示例

Let's understand the problem with an example.
Let n = 15,
Thus, we have to find all the numbers less than 15 that are cube-free.
The solution will be:  2,3,4,5,6,7,9,10,11,12,13,14.
For another example,
Let n = 20.
The numbers are 2,3,4,5,6,7,9,10,11,12,13,14,15,17,18,19.

登錄后復制

Explanation

的中文翻譯為:

解釋

注意,列表中沒有1、8和16。因為1和8本身就是立方數,而16是8的倍數。

有兩種方法來解決這個問題。

方法一:暴力法

暴力破解的方法如下:

    遍歷所有數字直到n。

    對于每個數字,遍歷其所有的除數。

    如果一個數的任何一個因數是一個立方數,那么這個數就不是無立方數。

    否則,如果這些數的除數中沒有一個是立方數,那么它就是一個無立方數。

    打印數字。

    Example

    的翻譯為:

    示例

    The program for this approach is as follows ?

    下面是一個C++程序,用于打印小于給定數字n的所有無立方數。

    #include<iostream>
    using namespace std;
    // This function returns true if the number is cube free.
    // Else it returns false.
    bool is_cube_free(int n){
       if(n==1){
          return false;
       }
       //Traverse through all the cubes lesser than n
       for(int i=2;i*i*i<=n ;i++){
          //If a cube divides n completely, then return false.
          if(n%(i*i*i) == 0){
             return false;
          }
       }
       return true;
    }
    int main(){
       int n = 17;
       cout<<"The cube free numbers smaller than 17 are:"<<endl;
       //Traverse all the numbers less than n
       for(int i=1;i<n;i++){
          //If the number is cube free, then print it.
          if(is_cube_free(i)){
             cout<<i<<" ";
          }
       }
    }
    

    登錄后復制

    輸出

    The cube free numbers smaller than 17 are:
    2 3 4 5 6 7 9 10 11 12 13 14 15
    

    登錄后復制

    方法二:埃拉托斯特尼篩法技術

    解決這個問題的高效方法將是埃拉托斯特尼篩法的概念。

    它用于找出小于給定限制的素數。在這里,我們將篩選出不是立方數的數字來得到我們的解決方案。

    方法如下?

      創建一個大小為n的布爾列表。

      將所有數字標記為true。這意味著我們目前已將所有數字標記為無立方數。

      遍歷所有小于n的可能的立方體。

      遍歷所有小于n的立方數的倍數。

      將列表中所有這些倍數標記為假。這些數字不是立方數自由的。

      遍歷列表。打印列表中仍為真的數字。

      輸出將包括所有小于n的無立方數。

      Example

      的翻譯為:

      示例

      The program for this approach is as follows ?

      下面是一個使用埃拉托斯特尼篩法打印小于給定數n的所有無立方數的C++程序。

      #include<iostream>
      #include<vector>
      using namespace std;
      
      //Find which numbers are cube free and mark others as false in the vector.
      void find_cube_free(vector<bool>&v, int n){
         //Traverse through all the numbers whose cubes are lesser than n
         for(int i=2;i*i*i<n;i++){
            
            //If i isn't cube free, it's multiples would have been marked false too
            if(v[i]==true){
               //Mark all the multiples of the cube of i as not cube free.
               for(int j=1;i*i*i*j<n;j++){
                  v[i*i*i*j] = false;
               }
            }
         }
      }
      int main(){
         int n = 15;
         
         //Vector to store which numbers are cube free
         //Initially, we set all the numbers as cube free
         vector<bool>v(n,true);
         find_cube_free(v,n);
         cout<<"The cube free numbers smaller than are:"<<endl;
         
         //Traverse the vector and print the cube free numbers
         for(int i=2;i<n;i++){
            if(v[i]==true){
               cout<<i<<" ";
            }
         }
      }
      

      登錄后復制

      輸出

      The cube free numbers smaller than are:
      2 3 4 5 6 7 9 10 11 12 13 14
      

      登錄后復制

      本文解決了找到小于n的無立方數的問題。我們看到了兩種方法:一種是蠻力法,另一種是使用埃拉托斯特尼篩法的高效方法。

      C++程序提供了這兩種方法的實現。

      以上就是小于n的立方數自由數的詳細內容,更多請關注www.xfxf.net其它相關文章!

分享到:
標簽:立方數 編程 自由數
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定