作者 焦晓军
单位 重庆科技学院
计算并输出2到正整数n之间每个数的质因子,并以乘法形式输出。
输入只有1个正整数即n。
把2到正整数n间的每一个数分解成它的质因子,并以乘法的形式输出。例如,输入的正整数n值为10,则应输出如下:
2 = 2
3 = 3
4 = 2 * 2
5 = 5
6 = 2 * 3
7 = 7
8 = 2 * 2 * 2
9 = 3 * 3
10 = 2 * 5
11 = 11
12 = 2 * 2 * 3
13 = 13
14 = 2 * 7
15 = 3 * 5
16 = 2 * 2 * 2 * 2
17 = 17
18 = 2 * 3 * 3
19 = 19
20 = 2 * 2 * 5
注意:中间的空格。
在这里给出一组输入。例如:
20
在这里给出相应的输出。例如:
2 = 2
3 = 3
4 = 2 * 2
5 = 5
6 = 2 * 3
7 = 7
8 = 2 * 2 * 2
9 = 3 * 3
10 = 2 * 5
11 = 11
12 = 2 * 2 * 3
13 = 13
14 = 2 * 7
15 = 3 * 5
16 = 2 * 2 * 2 * 2
17 = 17
18 = 2 * 3 * 3
19 = 19
20 = 2 * 2 * 5
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
C程序如下:
#include <stdio.h>
int main(void)
{
int n;
scanf("%d", &n);
for (int i = 2; i <= n; i++)
{
printf("%d = ", i);
int x = 2, y = i;
int flag = 1;//定义一个标志,用于特殊处理输出的第一个数
while (y != 1)
{
if (y % x == 0)//y从2开始,找y的质因子
{
if (flag == 1)//输出的第一个数特殊处理
{
printf("%d", x);
flag = 0;
}
else
{
printf(" * %d", x);
}
y /= x;
}//如果找不到就让x加一,再继续找
else
{
x++;//如果找不到就让x加一,再继续找
}
}
printf("\n");
}
return 0;
}