ROG


私信TA

用户名:dotcpp0688243

访问量:5493

签 名:

等  级
排  名 2435
经  验 2309
参赛次数 0
文章发表 8
年  龄 0
在职情况 学生
学  校 广东技术师范大学
专  业 数字媒体技术

  自我简介:

解题思路:先判断要求范围内的完数。在判断的过程中,如果是完数,按格式打印一下这个数,然后找到该完数的每一个因子(除去本身)并按格式打印每一个因子;如果不是完数,就继续判断下一个数。

注意事项:1.按格式的打印输出要有一个变量值来辅助处理换行

              2.打印输出要注意空格

参考代码:

#include<stdio.h>
#pragma warning(disable:4996);
void test27(int num)
{
	int b = 0;//防止第一次输出换行
	for(int i=2;i<=num;i++)//先判断完数
	{
		int sum = 1;
		for (int j = 2;j < i;j++) 
		{
			if(i%j==0)
			{
				sum += j;//累加,判断因数和是不是等于本身,是为完数,不是就判断下一个数
				
			}
			
		}

		
			if (sum == i)//如果是完数,再找完数的因数
			{
				if (b)printf("\n");//防止第一次输出换行(先为假)

				printf("%d its factors are", i);
				b = 1;//让后面每个完数找完因数后换行(再为真)
				for (int a = 1;a < i;a++)//找完数的因数
				{
					if (i % a == 0)
					{
					 printf(" %d", a);//打印每一个完数的因数

					}
				}
			}
		
		

	}
}
int main()
{
	int a = 0;
	scanf("%d",&a);//输入要判断的范围
	test27(a);
	return 0;
}


 

0.0分

1 人评分

  评论区

  • «
  • »