注意事项:
选择排序不是最优的排序,但是是最简单、易懂的。
参考代码:
#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 人评分
C二级辅导-同因查找 (C语言代码)浏览:592 |
大神老白 (C语言代码)浏览:768 |
C语言训练-求素数问题 (C语言代码)浏览:1509 |
C语言程序设计教程(第三版)课后习题6.11 (C语言代码)for循环浏览:1178 |
淘淘的名单 (C语言代码)答案错误???浏览:624 |
C语言程序设计教程(第三版)课后习题6.4 (C语言代码)浏览:1072 |
C语言程序设计教程(第三版)课后习题7.2 (C语言代码)浏览:686 |
简单的a+b (C语言代码)浏览:878 |
C语言程序设计教程(第三版)课后习题5.4 (C语言代码)浏览:821 |
星期判断机 (C语言代码)浏览:892 |