7-45 找完数 (20分)

7-45 找完数 (20分)

#include<cstdio>
int main()
{
	int m,n;
	int sum;
	int flag=0;
	scanf("%d%d",&m,&n);
	for(int i=m;i<=n;i++)
	{
		sum=0;
		for(int j=1;j<i;j++)
		{
			if(i%j==0)
			{
				sum+=j;
			}
		} 
		if(sum==i)
		{
			printf("%d=1",sum);
			for(int j=1;j<i;j++)
			{
				if(i%j==0)
				{
					printf("+%d",j);
				}
			}
			printf("\n");
			flag=1;
		}
	}
	if(flag==0)
	{
		printf("None!\n");
	}
	return 0;
} 

此程序有一个疑问,就是直接定义int sum=0;显示不出来,但是放到最外面的for循环就正确了,我也没弄懂为什么,希望好心人回答。

发布了61 篇原创文章 · 获赞 0 · 访问量 559

猜你喜欢

转载自blog.csdn.net/qq_38054511/article/details/104082601