一开始定义int m=0没必要,就是m就可以了。
公司主营业务:成都做网站、网站设计、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。创新互联公司是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。创新互联公司推出蓝田免费做网站回馈大家。
循环中要定义m=0,这样,对于每一个i,m最终都得到i因子的和,然后将m与i比较,如果相等,则i是完数,输出完数i。对于下一个i,m=0的作用是将m及时恢复0,这样才能得到i因子的和,否则就是对于各个i,m的值一直累加了。
#include
"stdio.h"
int
main()
{
int
x,i;
scanf("%d",x);//输入一个整数
for(i=1;i=x;++i)
{
if(x%i==0)
printf("%d\n",i);//输出因子
}
return
0;
}
这样就OK了~~不明白的话就问我
#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]);
}
}
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;
}
#include
#include
//数学函数头文件
main()
{
int
m,i,k=0;
printf("请你输入一个正整数:\n");
scanf("%d",m);
printf("%d
的因子有:\n",m);
for(i=1;i=m;i++)
{
if(m%i==0)
{
printf("%6d",i);
k++;
if(k%5==0)printf("\n");
//每五个数换一次行
}
}
getchar();
getchar();
}
你上机运行一下吧,结果是对的,有不明白的地方可以再找我……
这是我编写的 你编写的 要注意 每次进行外循环都要把 s初始化为 0 否则就是用上一次的值
#include stdio.h
int main()
{
int i,j,n,sum;
printf("请输入一个数:");
scanf("%d",n);
for(i=1;i=n;i++)
{
sum=0;
for(j=1;ji;j++)
if(i%j==0)
sum+=j;
if(sum==i)
{
printf("完数为:%d\t它的约数是:",i);
for(j=1;ji;j++)
if(i%j==0)
printf("%4d",j);
printf("\n");
}
}
return 0;
}