1. 程式人生 > >【c語言】分解質因數

【c語言】分解質因數

/******************************
 *輸入一個整數,並分解質因數
 *流程:(1)如果為1和2直接輸出
 *(2):偶數進入do迴圈,防止因為i的自增而出錯;
 *(3):奇數進入for迴圈,讓i自增,因為奇數肯定不能一直除2
 *data:2017.9.2
 *****************************/
#include <stdio.h>

int main(void)
{
    int num,i;

    scanf("%d",&num);
    printf("1*");
    if(num == 1)
        printf("1\n");
    if(num == 2)
        printf("2\n");
    for(i = 2;i < num;i++){
        if(num % 2 == 0)//偶數
            do{
                num /= i;
                printf("%d*",i);
            }while(num % i == 0);
        else//奇數
            if(num % i == 0){
                num /= i;
                printf("%d*",i);
            }
   
    }
    printf("%d",num);
    return 0;
}
 

相關推薦

c語言分解質因數

/******************************  *輸入一個整數,並分解質因數  *流程:(1)如果為1和2直接輸出  *(2):偶數進入do迴圈,防止因為i的自增而出錯;  *(3)

C語言統計數字在排序數組中出現的次數

語言 個數 統計 ret r+ () class tdi times //數字在排序數組中出現的次數。 //統計一個數字在排序數組中出現的次數。比如:排序數組{1,2,3,3,3,3,4,5}和數字3,因為3出現了4次,因此輸出4. #include <stdio

C語言推斷一個數是否為2的n次方

post data- popu scanf scan ng- 輸入 ont print //推斷一個數是否為2的n次方 #include <stdio.h> int is_two_n(int num) { if ((num&(num - 1))

C語言 二叉樹的基本運算

IT btree AS CA style pri != -- str • 二叉樹節點類型BTNode: 1 typedef struct node 2 { 3 char data; 4 struct node *lchild, *rch

C語言類型限定詞

變量 可變 oct 包含 一個數 sta ans eof 方式 ANSI C 的類型限定詞有const、volatile以及restrict三個,以下分別介紹三個限定詞: 1、類型限定詞const (1)、如果變量中帶有const關鍵字,則該變量無法進行賦值、增量及減量運算

C語言平衡二叉樹

avl 簡介 二叉搜索樹 沒有 TP 假設 它的 left 操作 AVL樹簡介 AVL樹的名字來源於它的發明作者G.M. Adelson-Velsky 和 E.M. Landis。AVL樹是最先發明的自平衡二叉查找樹(Self-Balancing Binary Searc

C語言輸入一個整數,求它的原碼,反碼,補碼值

補碼 while src info idt IV com scan -- 1 #include<stdio.h> 2 #include<math.h> 3 int main() 4 { 5 int m,n,a[10],i=0,y[

C語言數據對其(內存對齊)

brush size return () def ont http 之間 sign 數據對齊 結構體之間的對齊是有很多種方法的,也是根據你所用的系統位數有關。下面都是以32位系統來講的,32位系統一般以字對齊,字就是系統位數,32位系統則是32位對齊,也就是4字節(in

C語言Coursera課程《計算機程式設計》臺灣大學劉邦鋒——Week4課堂筆記

三次 編譯 scan parameter pass 命令 是把 dex float Coursera課程 《計算機程式設計》臺灣大學 劉邦鋒 Week4 Functions 4-1 System Function 函數主要分為兩大類系統定義函數與使用者定義函數,例如prin

C語言學習筆記3——字符串

store 寫代碼 inf 變量類型 density scanf() 想要 限定符 tor 1. 字符串(charcacter string)是一個或多個字符的序列 2. C語言沒有專門用於存儲字符串的變量類型。字符串都被存儲在char類型的數組種。 3. 數組由連續的

C語言學習筆記7——指針與多維數組

一個 聲明 %d mage 分享圖片 技術分享 pan 最好 include 1. 聲明一個指向多維數組的指針 int (* pz) [2]; //pz指向一個內涵兩個int類型元素的數組 int * pax[2]; //pax 是一個內含兩個指針元素的

C語言二維陣列解魔方陣

解題思路: 魔方陣的排列規律如下(思路來自網際網路): 注意:剛開始我也沒看懂,但是相信我多看幾遍理解已經能看懂的。 如3×3的魔方陣:      8   1   6  &nbs

C語言利用選擇法進行從小到大排序

選擇法思路: 取其中的最大值與最後一個數進行交換 假設一共有6個數組,我們用選擇法進行從小到大的排序; 6,5,4,2,3,1 第一次: 【6,5,4,2,3,1】->> 【1,5,4,2,3,6】 第二次:【1,5,4,2,3】,6 ->>【1

C語言楊輝三角(陣列)

什麼是楊輝三角(圖片來自網際網路): 楊輝三角陣列做法就是將楊輝三角的結構虛擬成一個二維陣列,通過二維陣列對楊輝三角的規律得出一個演算法來 演算法即為:a[i][j] = a[i-1][j-1]+a[i-1][j]; 一定要注意 arr(0,0) 一定為1 這是整個楊輝三角的計算核

C語言 利用篩選法求100以內的素數

演算法思路: 原理很簡單,就是當i是質(素)數的時候,i的所有的倍數必然是合數。如果i已經被判斷不是質數了,那麼再找到i後面的質數來把這個質數的倍數篩掉。 程式碼如下: //C語言 篩選法求100以內的素數 //原理很簡單,就是當i是質(素)數的時候,i的所有的倍數必然是合數。如果i已經

C語言利用迴圈輸出菱形

輸出菱形的思想主要是用了等差數列 an = a1 + (n - 1) * d  來求每個迴圈的約束條件; 一個完整的菱形必須是由空格 、星形 來組成,切分為兩部分。   題目效果如下: //要求輸出如下圖形 *   ***  *

C語言製作九九乘法表

程式碼: #include "stdio.h" int main(){ int x,y;//申請行和列變數 for(x = 1;x <= 9; x++){//迴圈行 for(y = 1; y <= x; y++){ // 迴圈列 列數等於當前行數 pri

C語言求Fibonacci數列前40項(迴圈)

程式碼為:  //求Fibonacci數列前40項 #include "stdio.h" int main(){ long int f1,f2,i; f1 = 1; f2 = 1; //賦初始值 for(i = 1;i<=20;i++){//迴圈20次,一次兩個,結

C語言冒泡法排序

1.冒泡演算法: 思路如圖所示(圖片來自bilibili UP:正月點燈籠) 解釋:冒泡演算法的思路通俗一點就是每次將自己想要的數(最大值和最小值)放到陣列的最後一位,然後每次迴圈n-1項就可以達到排序的目的了。 程式碼如下:  #include "stdio.h"

C語言迷宮

一,涉及知識點 結構體,棧,遞迴 二,實現邏輯 1.定義一個結構體儲存當前位置座標 2.用陣列初始化一個迷宮,1表示可以走,0表示牆,迷宮最後一列都是出口 3.列印迷宮 4.走迷宮方法一:使用棧,通過壓棧出棧回溯;方法二:在棧的基礎上,用遞迴做回溯 5.記錄最短路徑,把路徑壓入