1樓:冉丹琴
// 下面的程式可以把乙個偶數表示成其質數的乘積之和 #include///判斷素數 int f(int n) void main() printf(""
(j**a) 將乙個自然數分解成幾個質數的連乘積形式 舉例 input:60 output:2*2*3*5 15
2樓:鯨魚爸爸
package ;
import ;
import ;
public class test1
//去掉最後乙個「*」號。s =
}public listgetnum(int n)}else if(i < 3)
}else}i +=2 ;
}if(num !=1)
return list ;
}public static void main(string args)
}這個演算法是我原創的哦。時間複雜度最差應該是 o(sqrt(n)) 居然不用判斷用來做除數的是不是質數,o(∩_o哈哈~
求寫乙個c語言程式 講乙個數字分解成三個質數想乘
3樓:漠影歌
int issushu(int n)這是判斷素數部分,還有主函式部分,需要繼續追問,不明白的地方標出來。
c語言程式:將乙個正整數分解成若干素數的冪次方的乘積
4樓:之經亙姒郎
//**如下,不明確的歡迎追問。
#include
#include
intmain()
if(!e)
continue;
if(fir)
fir=0;//第一項還沒輸出,這裡遇到第一項,標誌設為0else
printf("*不是第一項,則先輸出'*'
printf("%d^%d",p,e);
}printf(""
return0;}
關於c語言「將乙個正整數分解成質因數的乘積」程式的問題
5樓:及珹彤白亦
/*a=1表示重頭開始掃瞄!!!因為我要獲得下乙個素因子,所以要從a=2掃瞄,雖然寫了a=1,可是a++以後就成2了*/
/*下面是我寫的**,lz可以參考一下*/#include""
ints[10005]=;素數表,=0表示是素數,=1表示為非素數*/
intp[5002],plen=0
;voidmklist()
intsplit(int
n,intfac[2])/返回素因子種類數*/
if(n!=1)
return
len;}void
main()
6樓:我的生活無意義
如果去掉了就會把多個質數當成了乙個。
比如12有這一句就輸出 12=2*2*3
沒有就輸出 12=2*3
你可以自己試一下就明的了。
c語言分解質因數
7樓:高金山
if(m%k!=0),說明還沒找到因數,每次都是從2開始,逐漸遞增,來找因數的。
else,else部分,說明已經找到了因數,找到因數以後,先把因數列印出來,然後讓m等於被除後的數,讓k=2,也就是從2開始,繼續遞增找其他的因數啊。
舉個例子,你就明白了,比如15,你要對它進行分解質因數,該怎麼做呢。
先讓k=2,發現15%2!=0了,說明2不是它的因數,讓k++
k=3的時候,發現15%3==0了,說明3是它的乙個因數,列印出3,讓m=15/3=5,讓k=2
5%2!=0,5%3!=0,5%4!=0,說明2,3,4,都不是5的因數,k繼續自加。
k=5,5%5==0了,說明5是5的因數,所以,列印5,m=5/5=1,k=2,這時,就會退出for迴圈了。
逐行分析,見下面:
if(m%k!=0) /m不能被k整除,說明k不是m的因數。
else //m不能被k整除,說明k是m的乙個因數。
8樓:九天之鳳舞
if(m%k!=0)
這句話的意思就是說當k不是m的約數時,繼續找下乙個k(即比k多1的數),判斷它是否是m的約數,是則輸出不是則繼續判斷下乙個。
k=2; /讓k重新等於2
這個的意思是乙個數如果找到了乙個約數(比如2), 那麼找下乙個約數之前仍然應該從2開始找,因為他可能仍有2這個質因子,比如24=2*2*2*3,第一次找到2,第二次仍然要從2開始判斷它是不是24的約數。
有不明白的地方再提出來吧~
9樓:逃離
if(m%k!=0)
m=m/k; /這個程式應該是版。
要輸出權,乙個數包含哪幾個因子,所以要判斷除最小質因子後,那個數還有幾個因子。
k=2; /讓k重新等於2
} }printf("%d",k); 最後是輸出小於m=m/k 後k的值 例如12=2*2*3 那個3 因為那時的m=3 k=3 不滿足k 10樓: 有這樣幾個問題: 宣告的二維陣列是aaa,但**中應用時又變成了a,會產生a未定義專錯誤。 int aaa[3][100000];陣列太大,建議使用全域性屬變數或動態陣列;改成int a[3][1000];更好。 a[3][z]=a[1][j];這裡和jj=a[3][z]*1;這裡陣列a都越界了。宣告的a第一維是3,即0、1、2,不可能有[3]。 把這些錯誤改了再說。 11樓:匿名使用者 #include #include #include int main() ;scanf("%d",&n); if(n<=1) exit(0); else if(n==2)else return 0; }這個是算bai比較小du的數 大概思路就zhi是先篩選dao出質數專。 集在遞迴從小屬到大除。 12樓:匿名使用者 這輸出結果連x都沒有也能成最佳? 13樓:星月小木木 實現bai方du法zhi如dao下內:容。 #include void main( ) else i++; 14樓:匿名使用者 if((n%i==0)&&i!=n)) 這個來地方,i作為n的因數不一定只源出現一次所以bai 應該用duwhile迴圈,讓n=n/i直到無法除盡,zhi否則可能影響後面的因子。 if((n%i==0)&&i!dao=n)) 15樓:冰封莊子 分解質因數,就是來。 將乙個合數自分解成幾個質數的乘積bai。 比如20=2*2*5 求質因數就du是從2開始除zhi,這就是這個算dao法的原理比如輸入20 能被2整除,輸出20的第乙個質因數2 此時m=10 ,k=2 //接著就是求10的質因數。。。 10能被2整除,輸出20的第2個質因數2 此時m=5,k=2 //接著求5的質因數。。。 5是質數,不能被除1和他本身外的數整除,k就從2加到5。。。 後輸出20的最後乙個質因數5 16樓:匿名使用者 你寫bai的du太zhi復dao雜專了屬。 #include void main( ) else i++; c語言如何將乙個正整數分解成質因數? 假設資料在a列,轉換到bcde四列,b1 offset a a,4 row 4,0,1,1 c1 offset a a,4 row 3,0,1,1 d1 offset a a,4 row 2,0,1,1 e1 offset a a,4 row 1,0,1,1 選中b1 e1單元格,下拉複製,就ok了... 果果和糰子 n的階乘就是從1到的累積,所以可以通過一個for迴圈,從1到n依次求積即可。include stdio.h int main int n,i,s 1 scanf d n for i 1 i n i for迴圈求累積s s i printf d n s return 0 執行結果 例如求5... include stdio.h int main printf n 輸出1行後換行 else 輸入的是偶數 printf n n 2 i 3 以4為例,輸出第1行後,n變成3,所以要加上2 0 3變成6 輸出第2行後,n變成4,加上2 1 3變成9if n 10 n 9 輸出第3行後,n變成6,加上...怎樣把excel一列(有四千個資料)轉換成一行(那就是1000行),求謝謝大神
c語言如何求數的階乘,c語言如何求一個數的階乘 5
C語言逆向輸出數字,C語言中,怎麼將乙個數反向輸出