c语言中求一个数的因数,【代码】求一个数的因数和、求优化、顺便也供新人参考算法...
該樓層疑似違規(guī)已被系統(tǒng)折疊?隱藏此樓查看此樓
#include
#include
main()
{
int n,q,p,m,k=1,sum=0,s[99999]={2},t[99999];//n是輸入的數(shù);q和p分別代表兩個(gè)數(shù)組的工作下標(biāo)
scanf("%d",&n); //k是用來取小于n數(shù)的數(shù)組工作下標(biāo)
for(int i=3;i<=n;i+=2) //去所有小于n的數(shù),放進(jìn)s數(shù)組中
{
int tag=0;
for(int j=2;!tag&&j
if(i%j==0)tag=1;
if(!tag)
{
s[k]=i;
k++;
}
}
int tag=0; //用來判斷n是否是質(zhì)數(shù)
for(int j=2;!tag&&j
if(n%j==0)tag=1;
if(!tag)
{
t[0]=1; //如果是,則把1和它本身放進(jìn)t數(shù)組中
t[1]=n;
p=2;
}
else //如果不是素?cái)?shù),則開始分解因數(shù)
{
q=0,p=0;
while(1)
{
if(!(n%s[q])||n==s[q]) //s數(shù)組的素?cái)?shù)從小到大能被整除或就是數(shù)本身
{
t[p]=s[q]; //放進(jìn)t數(shù)組
p++;
n/=s[q];
}
else q++; //直到不能被整除,移動(dòng)s數(shù)組下標(biāo)判斷下一個(gè)素?cái)?shù)
if(!(s[q]))break;
}
}
for(m=0;m
printf("%d\n",sum);
}
總結(jié)
以上是生活随笔為你收集整理的c语言中求一个数的因数,【代码】求一个数的因数和、求优化、顺便也供新人参考算法...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 单片机c语言中的循环语句,单片机c语言教
- 下一篇: 最新android webview,An