對文件的讀和寫是最常用的文件操作。在C語言中提供了多種文件讀寫的函數:
【案例描述】
輸入:900
輸出:900=2×2×3×3×5×5
【案例分析】
輸出正整數m為其全部質因數的乘積的基本思路是:
1、從最小的可能因子2開始搜索:k=2
2、如果m不能被k整除,則轉步驟4
3、輸出質因數k,m=m/k,轉步驟2
4、k=k+1
5、如果k<=m,轉步驟2
6、結束
說明:
以上算法沒有判斷k是否為質數。這是因為,當找到最小的正整數k(k>1)是m的約數時,k一定是質數。如:m=900
(1)k=2,是900的因數,也肯定是900的質因數:m=900/2=450
(2)2是450的質因數:m=450/2=225
(3)2不能整除255,k=k+1后k=3
(4)3是255的因數,也是900的質因數:m=255/3=85
(5)3是85的質因數:m=85/3=25
(6)3不能整除25,k=k+1后k=4
(7)4不能整除25,k=k+1后k=5
(8)5是25的質因數,也是900的質因數:m=25/5=5
(9)5是5的質因數:m=5/5=1
(10)k<=m不再成立,輸出結束。
【參考代碼】
main()
{ int k,m,f=0; //f用于確定是否找到質因數
scanf("%d",&m);
printf("%d=",m);
for(k=2;k<=m;k++)
for(;m%k==0;m/=k)
if(f==0){f=1;printf("%d",k);}
else printf("×%d",k);
}