C语言程序设计 输入一个合数进行分解,合数大于1小于10^11,按递增输出合数的质(素)因子。
1个回答
展开全部
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int IsPrime(int m) {
int i,flag = 1;
if(m < 2) return 0;
if(m == 2 || m == 3) return 1;
for(i = 2;flag && i < sqrt(m);i++) {
if(m % i == 0) flag = 0;
}
return flag;
}
void Dissociation_Prime(int n) {
int i,flag = 1;
printf("%d = ",n);
for(i = 2; i < n; ++i) {
if(IsPrime(i) && (n % i == 0)) {
if(flag) {
printf("%d",i);
flag = 0;
}
else printf("×%d",i);
n /= i;
--i;
}
}
if(flag == 0) printf("×%d\n",n);
else if(n) printf("%d\n",n);
}
int main() {
int i;
for(i = 12;i <= 30;i++)
Dissociation_Prime(i);
return 0;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询