7-260 素分解式
分数 100
全屏浏览题目
切换布局
作者 于延
单位 哈尔滨师范大学
任务描述
编写函数,输出一个正整数的素数分解式。主函数的功能为输入若干正整数(大于1),输出每一个数的素分解式。素数分解式是指将整数写成若干素数(从小到大)乘积的形式。
例如:
20=2*2*5
36=2*2*3*3
53=53
输入样例:
6 10 24 100 1000 1001 1002001
输出样例:
6=2*3
10=2*5
24=2*2*2*3
100=2*2*5*5
1000=2*2*2*5*5*5
1001=7*11*13
1002001=7*7*11*11*13*13
#include <stdio.h>
void fun(int n)
{
int i = 2, k = 0;
while (n != 1)
{
if (n % i == 0)
{
if (k == 0)
printf("%d=", n);
printf(k++ == 0 ? "%d" : "*%d", i);
n /= i;
}
else {
i++;
}
}
printf("\n");
}
int main()
{
int n;
while (scanf("%d", &n) == 1 && n > 1) // 输入 0 或 负数结束输入
fun(n);
return 0;
}