本题目要求读入一个大于1的整数,编程将其分解成若干个质因子(素数因子)积的形式。
输入格式:
大于1的整数一个。
输出格式:
将输入的正整数分解成若干个质因子积的形式,质因子的出现顺序按从小到大排列。如:40=2*2*2*5;如果整数本身为质数或素数,直接输出,如:13=13。
样例">样例">输入样例:
12480
输出样例:
12480=2*2*2*2*2*2*3*5*13
最后一项输出没有“*”,方法主要是判断i与剩余的n的关系
#include<stdio.h>
#include<math.h>
/*创建函数:判断是否为素数*/
int s(int n)
{
for (int i = 2; i <=sqrt(n); i++)
{
if (n % i == 0)
{
return 0;/*不是素数返回0*/
}
}
return 1;/*是素数返回1*/
}
/*主程序*/
int main(void)
{
int n;
scanf_s("%d", &n);/*输入的整数*/
if (s(n) == 1 )/*输入为素数*/
{
printf("%d=%d", n,n);
}
else if (s(n) == 0)/*输入不是素数*/
{