你算哪个bug


私信TA

用户名:qiao

访问量:45671

签 名:

请一定不要停下来成为你想成为的人鸭!

等  级
排  名 58
经  验 11060
参赛次数 4
文章发表 46
年  龄 20
在职情况 学生
学  校
专  业 计网

  自我简介:

在最好的年龄成为一个优秀的人,是最美的成长了

 

0.0分

392 人评分

  评论区

#include<stdio.h>
int main() {
    int n,i,j;
    scanf("%d",&n);//读入n
    for(i=1; i<=n; i++) { //遍历1~n
        int tem=0; //每次内层循环结束tem重新赋值为0
        for(j=1; j<i; j++) { //判断是否为完数
            if(i%j==0) { // 判断是否为因子
                tem+=j; //因子求和
            }
        }
        if(tem==i) {   //因子和等于本身即为完数-->输出
            printf("%d\n",i);
        }
    }
    return 0;
2021-11-10 15:59:30
我的做法,提交错误,有什么问题么
#include<stdio.h>
int main()
{
	int N,i,s=0;
	scanf("%d",&N);
	for(i=1;i<N;i++)
		if(N%i==0)
		s+=i;
	if(s==N)
	{
		printf("%d its factors are",N);
		for(i=1;i<N;i++)
			if(N%i==0)
			printf("%d ",i);
		printf("\n");
	}
	return 0;
 }
2021-11-02 15:41:39
答主,第二种解法中,为什么不考虑数组的a[ ]的重置呢?尽管答案是对的,但感觉这里需要完善一下~
2021-10-17 11:20:08
好难啊  我天
2021-10-14 15:28:27
分享 另外一种做法   不需要数组 :  
#include<stdio.h>
int main(){
	int n,i,j,tem;
	scanf("%d",&n);
	for(i=1;i<=n;i++){
		tem=0;
		for(j=1;j<i;j++){
			if(i%j==0){
				tem+=j;
			}
		}
		if(tem==i){
			printf("%d its factors are",i);
			for(j=1;j<i;j++){
				if(i%j==0){
					printf(" %d",j);
				}
			}
			printf("\n");
		}
	}
}
2021-05-28 15:42:21