dotcpp0686717


私信TA

用户名:dotcpp0686717

访问量:31

签 名:

等  级
排  名 43681
经  验 340
参赛次数 0
文章发表 1
年  龄 0
在职情况 学生
学  校
专  业

  自我简介:

TA的其他文章

注意事项:

选择排序不是最优的排序,但是是最简单、易懂的。

参考代码:

#include<stdio.h>

//交换

void swap(int &a,int &b){

    int count;

    count = a;

    a = b;

    b = count;

}

//选择排序

void selectsort(int a[],int len){

    for(int i = 0;i < len;i++){

        for(int j = i;j < len;j++){

            if(a[i] > a[j]){

                swap(a[i],a[j]);

            }

        }

    }

}

//分解因子

void factor(int num){

    int factor[1000],m = 0,sum = 0;

    for(int i = 2;i*i <= num;i++){

        if(num % i == 0){

            factor[m++] = i;

            factor[m++] = num/i;

            sum += i+num/i;

        }

}

        if(sum+1 == num){

            selectsort(factor,m);

        printf("%d its factors are 1 ",num);

        for(int j = 0;j < m;j++){

            printf("%d ",factor[j]);

        }printf("\n");

        }

    }

int main(){

    int num,i,sum=0;

    scanf("%d",&num);

    if(num <= 0){

        printf("? its factors are ? ? ?");

        return 0;

    }//范围内数字:

    for(i = 2;i <= num;i++){

        factor(i);

    }

return 0;

}

(代码仅个人想法,非最优解)

 

0.0分

1 人评分

  评论区

  • «
  • »