1. 程式人生 > >C/C++:各種基本演算法實現小結(七)—— 常用演算法

C/C++:各種基本演算法實現小結(七)—— 常用演算法

各種基本演算法實現小結(七)—— 常用演算法

(均已測試通過)

======================================================================

1、判斷素數

測試環境:VC 6.0 (C)

[cpp] view plain copy  print?
  1. #include <stdio.h>
  2. #include <math.h>
  3. int is_sushu(int n)  
  4. {  
  5.     int i, mid;  
  6.     mid=(int
    )sqrt(n);  
  7.     for(i=2; i<=mid; i++)  
  8.         if(0 == n%i)  
  9.             return 0;  
  10.     return 1;  
  11. }  
  12. void main()  
  13. {  
  14.     int n;  
  15.     printf("Enter a num: ");  
  16.     scanf("%d", &n);  
  17.     if(is_sushu(n))  
  18.         printf("%d is sushu!/n", n);  
  19.     else
  20.         printf("%d is not sushu.../n"
    , n);  
  21. }  

執行結果:

    

==========================================================

2、 求2-1000之間的所有素數

測試環境:VC 6.0 (C)

[cpp] view plain copy  print?
  1. #include <stdio.h>
  2. #include <math.h>
  3. #define MAX 1000
  4. int is_sushu(int n)  
  5. {  
  6.     int i, mid;  
  7.     mid=(int
    )sqrt(n);  
  8.     for(i=2; i<=mid; i++)  
  9.         if(0 == n%i)  
  10.             return 0;  
  11.     return 1;  
  12. }  
  13. void main()  
  14. {  
  15.     int i, count;  
  16.     count=0;  
  17.     for(i=2; i<=MAX; i++)  
  18.         if(is_sushu(i))  
  19.         {  
  20.             count++;  
  21.             printf("%5d", i);  
  22.                 if(0 == count%10)  
  23.                     printf("/n");  
  24.         }  
  25.     printf("/n");  
  26. }  

執行結果:

==========================================================

3、 驗證哥德巴赫猜想

哥德巴赫猜想:任意一個大於等於6的偶數都可以分解為兩個素數之和

如: 6 = 3+3;100 = 3+97=11+89; 1000 = 3+997=59+941=。。。

測試環境:VC 6.0 (C)

[cpp] view plain copy  print?
  1. #include <stdio.h>
  2. #include <math.h>
  3. #define MAX 1000
  4. int is_sushu(int n)  
  5. {  
  6.     int i, mid;  
  7.     mid=(int)sqrt(n);  
  8.     for(i=2; i<=mid; i++)  
  9.         if(0 == n%i)  
  10.             return 0;  
  11.     return 1;  
  12. }  
  13. void main()  
  14. {  
  15.     int i, mid, n;  
  16.     printf("Enter an even num: ");  
  17.     scanf("%d", &n);  
  18.     mid=n/2;  
  19.     for(i=2; i<=mid; i++)  
  20.     {  
  21.         if(is_sushu(i) && is_sushu(n-i))  
  22.             printf("%d = %d + %d/n", n, i, n-i);  
  23.     }  
  24. }  

執行結果:

       

==========================================================

4、 求最大公約數(GCD)和最小公倍數(LCM)

測試環境:VC 6.0 (C)

[cpp] view plain copy  print?
  1. #include <stdio.h>
  2. void  max_min(int &m, int &n)  
  3. {  
  4.     int tmp;  
  5.     if(m<n)  
  6.     {  
  7.         tmp=m;  
  8.         m=n;  
  9.         n=tmp;  
  10.     }  
  11. }  
  12. int Cal_GCD(int m, int n)  
  13. {  
  14.     int gcd;  
  15.     max_min(m, n);  
  16.     gcd=m%n;  
  17.     while(gcd)  
  18.     {  
  19.         m=n;  
  20.         n=gcd;  
  21.         gcd=m%n;  
  22.     }  
  23.     return n;  
  24. 相關推薦

    C/C++各種基本演算法實現小結—— 常用演算法

    各種基本演算法實現小結(七)—— 常用演算法 (均已測試通過) ====================================================================== 1、判斷素數 測試環境:VC 6.0

    C/C++各種基本演算法實現小結—— 查詢演算法

    各種基本演算法實現小結(六)—— 查詢演算法 (均已測試通過) =================================================================== 1、簡單查詢 在一組無序數列中,查詢特定某個數值,並返回其位置

    各種基本演算法實現小結—— 排序演算法

    分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

    C/C++各種基本演算法實現小結—— 圖及其遍歷

    各種基本演算法實現小結(四)—— 圖及其遍歷 (均已測試通過) ==================================================================== 圖——深度優先和廣度優先演算法 無向圖

    C/C++各種基本演算法實現小結—— 堆 棧

    各種基本演算法實現小結(二)—— 堆 棧 (均已測試通過) ============================================================== 棧——陣列實現 測試環境:Win - TC

    C/C++各種基本演算法實現小結—— 樹與二叉樹

    各種基本演算法實現小結(三)—— 樹與二叉樹 (均已測試通過) =================================================================== 二叉樹——先序 測試環境:VC 6.0 (C

    C/C++:各種基本演算法實現小結—— 單鏈表

    各種基本演算法實現小結(一)—— 單鏈表 (均已測試通過) ============================================================ 單鏈表(測試通過) 測試環境: Win-TC

    各種基本算法實現小結—— 圖及其遍歷

    malloc end type details 幽默 can false 希望 頂點 分享一下我老師大神的人工智能教程吧。零基礎!通俗易懂!風趣幽默!還帶黃段子!希望你也加入到我們人工智能的隊伍中來!http://www.captainbed.net 各種基本算法實現

    C++繼承公有,私有,保護

    情況 pre mes 派生類 它的 保持 ++ col ble 公有繼承(public)、私有繼承(private)、保護繼承(protected)是常用的三種繼承方式。 1. 公有繼承(public) 公有繼承的特點是基類的公有成員和保護成員作為派生類的成員時,它們都保持

    C#中委託與事件的學習小結

    最近又學習了一些C#的小知識點,在此釋出部落格記錄一下。 一、委託 C#中的委託的關鍵字是delegate,我們可以使用委託型別來將已有的方法例項化出來,也可以將我們自己定義的方法作為引數來傳遞。 例如: private delegate string GetAStri

    C語言_位運算子的實現舉例

    1. 返回引數二進位制中 1 的個數。 比如: 15 0000 1111 4 個 1 程式碼如下: //返回引數二進位制中1的個數 #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include

    Spring技術內幕Spring AOP的實現原理

    dede ide configure ida mini == src min dem 生成SingleTon代理對象在getSingleTonInstance方法中完畢,這種方法時ProxyFactoryBean生成AopProxy對象的入口。代理對象會

    C# WinfForm 控件之dev報表 XtraReport 報表合並

    code ges range dev 技術分享 div dial 裝飾模式 兩個 這個不是太難,新建兩個報表 一個form窗體 窗體上放個documentView 代碼如下 XtraReport2 xr2 = new XtraReport2();

    OpenCV下車牌定位演算法實現程式碼

                 分類:            影象處理

    演算法工程師修仙之路吳恩達機器學習

    吳恩達機器學習筆記及作業程式碼實現中文版 第六章 神經網路學習 非線性假設 無論是線性迴歸還是邏輯迴歸都有這樣一個缺點:當特徵太多時,計算的負荷會非常大。 使用非線性的多項式項,能夠幫助我們建立更好的分類模型。假設我們有非常多的特徵,例如大於 100 個

    演算法的實戰LeetCode -- threeSum

    一 題目描述  給定一個包含 n 個整數的陣列 nums,判斷 nums 中是否存在三個元素 a,b,c ,使得 a + b + c = 0 ?找出所有滿足條件且不重複的三元組。 注意:答案中不可以包含重複的三元組。 例如, 給定陣列 nums = [-1, 0,

    GBDT梯度提升樹演算法原理小結

    首先我們回顧一下Gradient Boosting 的本質,就是訓練出,使損失函式最小,即 其求解步驟如下: 所以,我們首先得定義出損失函式,才能談求解的事情。接下來我們針對不同場景,介紹相應的損失函式。 迴歸 對於迴歸問題,定義好損失函式後,Gradient B

    PoA共識引擎演算法實現分析2

    PoA共識引擎演算法實現分析 clique中一些概念和定義 EPOCH_LENGTH : epoch長度是30000個block, 每次進入新的epoch,前面的投票都被清空,重新開始記錄,這裡的投票是指加入或移除signer BLOCK_PERIOD : 出塊時間,

    細說linux IPC十一各種IPC形式比較總結

            我們這一系列沒有講述訊號燈相關內容,是因為訊號燈是程序間以及同一程序不同執行緒之間的一種同步方式,我們這一系列把精力主要放在程序之間資訊的互動上面,而同步與互斥的內容放在另一個系列,這樣更便於知識的細化歸類,各個擊破。其實同步與互斥是程序間通訊的一個很重要

    經典演算法實現——字串

    這篇文章主要介紹字串相關的題目。 處理字串操作相關問題時,常見的做法是從字串尾部開始編輯,從後往前逆向操作。這麼做的原因是因為字串的尾部往往有足夠空間,可以直接修改而不用擔心覆蓋字串前面的資料。 摘自