CCK


私信TA

用户名:1049346696

访问量:714

签 名:

一个菜鸟的诞生日记

等  级
排  名 4883
经  验 1559
参赛次数 4
文章发表 4
年  龄 24
在职情况 在职
学  校 dgut
专  业 ce

  自我简介:

菜鸟的打怪之路,有志同道合的可以一起冲

解题思路:

指针形式解法(怕自己忘了这一种解决思路,写个帖子)

参考代码:

#include<stdio.h>
void main()
{
	int i,j,n;                //定义大小循环指标,定义参数n
	scanf("%d",&n);           //输入参数n
	for(i = 6; i <= n/2; i++)   //可以从6开始到n/2,减少运行时间
	{
		int a[100]={0};       //虽然定义32个存储空间就可以,但运行过大会导致数据丢失,扩大内存到100
		int *p = a;           //采用指针进行数据的读取
		for (j = 1; j < i; j++)    //小循环存储因子的和以及因子
		{
			if (i % j == 0)
			{
				*++p = j;      //数组a[1]开始存储因子
				a[0] += j;     //数组a[0]存储因子总和
			}
		}
		if(a[0] == i)          //判断是否为完数
		{
			printf("%d its factors are",i);
			for(p = &a[1]; *p != 0; p++)
			{
				printf(" %d", *p);
			}
			printf("\n");      //换行输出
		}
	}
}


 

0.0分

1 人评分

看不懂代码?想转换其他语言的代码? 或者想问其他问题? 试试问问AI编程助手,随时响应你的问题:

编程语言转换万能编程问答  

代码解释器

代码纠错

SQL生成与解释

  评论区