作业帮 > 综合 > 作业

急求c语言编程:从键盘任意输入一个整数m,若m不是素数,则计算并输出其所有的因子(不包括1),例如对于

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/12 10:16:53
急求c语言编程:从键盘任意输入一个整数m,若m不是素数,则计算并输出其所有的因子(不包括1),例如对于
例如对于16,输出2,4,8;否则输出"No divisor!It is a prime number\n".
我这个效率最高,最直观#include <math.h>
#include <stdio.h>
void main()
{
_开始:
printf("请输入待分析的正整数\n");
int n待分析;
scanf("%d", &n待分析);
if(n待分析 < 0)
goto _开始;
int n因子上限 = (int) sqrt((double)n待分析);
int n因子个数 = 0;
for(int i = 2; i <= n因子上限; ++i)
{
int n另一个因子 = n待分析 / i;
if(n待分析 == n另一个因子 * i)
{
printf(" (%d, %d) ", i, n另一个因子);
++n因子个数;
}
}
printf("\n");
if(n因子个数 == 0)
printf("No divisor! It is a prime number\n");
goto _开始;
}程序执行请输入待分析的正整数
16
(2, 8) (4, 4)
请输入待分析的正整数
256
(2, 128) (4, 64) (8, 32) (16, 16)
请输入待分析的正整数
1024
(2, 512) (4, 256) (8, 128) (16, 64) (32, 32)
请输入待分析的正整数
255
(3, 85) (5, 51) (15, 17)
请输入待分析的正整数小力庭 2013-4-20 欢迎到我微博上交流
weibo.com/litingsoft