C语言 分解质因数
程序员文章站
2024-02-02 18:31:52
...
问题描述
求出区间[a,b]中所有整数的质因数分解。
输入格式
输入两个整数a,b。
输出格式
每行输出一个数的分解,形如k=a1a2a3…(a1<=a2<=a3…,k也是从小到大的)(具体可看样例)
#include<stdio.h>
#include<math.h>
int ss(int x){
int i;
if((x==1)||(x==2))return 1;
for(i=2;i<x;i++)
if(x%i==0)return 0;
else return 1;
}
void fen(int x){
int i,j=0,k=1,num=0,flag=0,ans[100],chu=x;
while(1){
num++;
for(i=2;i<x;i++){
if(ss(chu)){
ans[j]=chu;
j++;
flag=1;break;
}
if(chu%i==0){
ans[j]=i;
j++;
chu=chu/i;
break;
}
}if(flag)break;
}
printf("%d=",x);
for(k=0;k<j;k++){
printf("%d",ans[k]);
if(k==j-1){
break;}
printf("*");
}
}
int main(){
int a,b,i;
scanf("%d%d",&a,&b);
for(i=a;i<=b;i++){
if(ss(i)==1){
printf("%d=%d",i,i);
}
else fen(i);
printf("\n");
}
return 0;
}
上一篇: C语言编程题:输入多个字符串,输出其中最短的字符串。
下一篇: 编译问题_PHP教程