欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

PTA - 使用函数输出指定范围内的完数

程序员文章站 2024-03-05 18:27:55
...

PTA - 使用函数输出指定范围内的完数
本题需要注意的是:特殊考虑1的情况,以及找到合适的方式输出完数的式子。

int factorsum( int number )
{
	int sum=0, i;
	
	if ( number==1 ) {
		return number;
	}
	
	for ( i=1; i<=number/2; i++ ) {
		if ( number%i==0 ) {
			sum += i;
		}
	}
	
	return sum;
}

void PrintPN( int m, int n )
{
	int i,j,count=0;
	for ( i=m; i<=n; i++ ) {
		if ( factorsum(i)==i ) {
			int ret=0; //用于判断输出是否结束(即左右式子是否已相等) 
			count=1;
			printf("%d = ", i);
			
			if ( i==1 ) {
				printf("%d", i);
			}
			
			for ( j=1; j<i; j++ ) {
				if( i%j==0 ) {
					printf("%d", j);
					ret += j;
					if ( ret!=i ) {
						printf(" + ");
					}
				}
			}
			printf("\n");
		}
	}
	if ( count==0 ) {
		printf("No perfect number");
	}
}
相关标签: 编程练习题