十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
从数学定义可以得知,一个数的因数范围在1到该数本身。所以只需要从1到该数遍历,逐个尝试模除,可以整除的则为因数,将所有符合条件的数打印即可。
创新互联建站是一家集网站建设,阜新企业网站建设,阜新品牌网站建设,网站定制,阜新网站建设报价,网络营销,网络优化,阜新网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。
代码如下:
#include stdio.h
int main()
{
int n,i;
scanf("%d",n);//输入要输出因数的值。
for(i = 1; i = n; i ++)
{
if(n%i ==0) printf("%d,",i);//输出因数。
}
return 0;
}
1.对1~本身的各个数取余,为零的即为其因子。
#include stdio.h
void factor(int n)
{
printf("%d factor has: ", n);
for (int i = 1; i = n; i ++)
{
if (n % i == 0)
printf("%d ", i);
}
printf("\n");
}
int main()
{
factor(27);
factor(100);
return 0;
}
#includestdio.h
void main()
{
int x,y,i=2,j=0,m;
printf("输入数字:");
scanf("%d",x);
m=x;
int a[15]={0};
//设定一个范围足够的数组存放因子
while(i=x)
{
if((x%i)==0) { x=x/i ;a[j]=i; j++; i=2;}
else i++;
//由于一个数的因子会小于或等于本身,所以可以
//以此设定跳出条件,用遍历的思想去从2开始逐个寻找因子
//如果那个数是因子之一则可以被整除if((x%i)==0)
//以此作为判断条件,而一个数的因子可能会重复
//所以每找到一个就要有重头开始再判断一边
//i=2;就是作为复位的,其实这个程序和算法很简单
//你自己多看两遍就明白了
//如果还有不懂得就直接上我的空间找我好了
}
printf("y=");
if(j==0) printf("%d\n",m);
//这是特殊情况质数
else
{
for(i=0;ij-1;i++) if(a[i]!=0) printf("%d*",a[i]);
printf("%d\n",a[i]);
}
}
#includemath.h
int
fun(int
n)
{int
i,k=1;br
for(i=2;i=sqrt(n);i++)br
if(n%i==0)
k=0;br
return
k;}
void
factor(int
n)
{
int
i,x,m=n;
printf("\n%d=",n);
for(i=2;i=n;i++)
{
if(fun(i)==1m%i==0){
printf("%d*",i);
m=m/i;
i=1;
if(fun(m)==1)
break;}
}
printf("%d\n",m);
}
main()
{
int
a;
printf("shu
ru
yi
ge
shu:");
scanf("%d",a);
factor(a);
}
因为一定要是素因数的乘积
所以我多用了一个判断是不是素数的函数,可以不?
如果只能用一个函数,你就自己把fun函数放进去,不过写起来就有点繁了!