
#include<stdio.h>
int main(){
int n
scanf("%d",&n)
int i
for(i = 1 i <= n/2 i++){ //考虑到速度,可循环到本身一半就好了
if(n%i == 0){ //i能整除n,就输出n
printf("%d ",i)
}
}
printf("%d\n",n) //输出本身,并且换行
return 0
}
5761 2 3 4 6 8 9 12 16 18 24 32 36 48 64 72 96 144 192 288 576
程序的主要逻辑用c语言完成了,有详细的注释。。。。
程序如下,运行结果见下图:C语言实现。。。。。。
#include<stdio.h>
#include <stdlib.h>
#define MAX_LEN 200
void main()
{
int num1[MAX_LEN] //存放测试用例
int num_test=0//测试用例个数
//初始化数字数组num1[MAX_LEN]
for (int i=0i<MAX_LENi++)
{
num1[i] = -1
}
printf("输入测试用例个数(为整数):")
scanf("%d",&num_test)
//输入num_test个测试用例数值存放到num1[max_len]中
for (i=0i<num_testi++)
{
printf("请输入第%d个测试用例:",i+1)
scanf("%d",&num1[i])
}
for(i=0i<MAX_LENi++)
{
printf("\n")
//所有数的因子求玩后推出
if (num1[i]==-1)
{
return
}//end if
printf("%d的所有因子为:",num1[i])
//处理特殊情况: 你给的条件不清楚。。。自己处理吧
//如果测试用例数据为0,那么进入下一循环
if (num1[i]==0)
{
printf(" 你自己填")
continue
}//endif
if (num1[i]==1)
{
printf(" 你自己填")
continue
}
//输出因子>1
for (int j=1j<=num1[i]-1j++)
{
//测试数据不为0
if (num1[i]%j == 0)
{
printf("%d ",j)
}//end if
}//end for
printf("\n")
}//end for
}//end main
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)