编程题: 1、写一个程序,把一个100以内的自然数分解因数。(自然数分解因数就是将一
个自然数分解为几个素数的乘积,提示,由于该数不是很大,所以可以将质数保存在数组中,以加快计算速度) 2、编写一个Identify的分配、释放的函数,为1-10000之间的自然数。 from csdn check it out http://community.csdn.net/Expert/topic/3711/3711810.xml?temp=.2223017
编程题: 1、写一个程序,把一个100以内的自然数分解因数。(自然数分解因数就是将一
个自然数分解为几个素数的乘积,提示,由于该数不是很大,所以可以将质数保存在数组中,以加快计算速度) 2、编写一个Identify的分配、释放的函数,为1-10000之间的自然数。 from csdn check it out http://community.csdn.net/Expert/topic/3711/3711810.xml?temp=.2223017
[此贴子已经被作者于2005-1-13 21:27:00编辑过]
这样可以了: #include<stdio.h> main() {int n,a[20],i,l=0,j,k,flag1=0,flag2=0,m; printf("input a number(<100):"); scanf("%d",&n); m=n; while(2) { for(k=2;k<n;k++) { flag1=0;flag2=0; if(n%k!=0) continue;
for(i=2;i<k;i++) if (k%i==0) break; if (i>=k) flag1=1; if(flag1==1) {a[l++]=k;flag2=1;break;} } if(flag2) n=n/k;
for(i=2;i<n;i++) if (n%i==0) break; if (i>=n) {a[l++]=n;break;}
} printf("%d=",m); for(i=0;i<l;i++) {printf("%d",a[i]); if (i!=l-1) printf("*"); } printf("\n"); getch(); }