以下是引用ericxu1116在2006-4-9 11:09:00的发言:
题目是:找出1000以内的所有完数,并且按照以下格式输出其因子:6 irts factors are 1,2,3
#include <stdio.h>
const int M=1000;
int main()
{
int s=0,a;
int k[11];
int n=0,i;
for(a=2;a<=M;a++)
{
for(i=1;i<=a;i++)
{
if(a%i==0)
{
n++;
s=s+i;
k[n]=i;
}
}
if(s==a)
{
printf("%d its factors are",a);
for(i=1;i<n;i++)
printf("%d,",k[i]);
printf("\n");
}
s=0;
return 0;
}
}
我编了这个程序但是运行是出现的是一串乱码,怎么回事啊?
不好意思,俺只看出了这点,但还是运行不了,俺也不知道是怎么回事.不过这里有我以前写的一个差不多的例子,
稍微改改应该就行了
#include<stdio.h>
main()
{
char ch;
long int num;
long int i;
while (1)
{
printf("Please input a number:\n");
scanf("%ld",&num);
printf("%ld=",num);
for(i=2;i<=num;i++)
{
if(num%i==0)
{
if(num==i)
printf("%ld",i);
else
{
printf("%ld*",i);
num=num/i;
i=1;
}
}
else continue;
}
printf("\nWould you like to run the program again?y/n\n");
ch=getch();
if(ch!='y')
exit(0);
}
}