原题链接:蓝桥杯基础练习VIP-分解质因数
解题思路:判断质数大家都很熟悉啦,判断质因数也是不难的哦,千万别把代码思路想象的很复杂,人人都可以学会的!
注意事项:我觉得难点在于插入*和\n,大家看看代码代入一下数字很简单就能理解,有问题欢迎留言讨论,别忘了点个赞喔
参考代码:
#include <stdio.h>
void fenjie(int num){//分解质因数
if(num!=1){ //停止递归的条件num=1
for(int i=2;i<=num;i++){
if(num%i==0){ //找出一个因数
printf("%d",i);
if(i!=num) printf("*");//i=num说明是最后一个因数,不加分号
fenjie(num/i);//递归
break;//找出一个因数循环就要赶紧停止,防止找出4,6这种非质数
}
}
}
else printf("\n");
}
int zhi(int num){//判断质数
for(int j=2;j<num;j++){
if(num%j==0) return 0;//不是质数
if(j==num-1) return 1;//是质数
}
}
int main()
{
int a,b;
scanf("%d %d",&a,&b);
for(int i=a;i<=b;i++){
if(i==1) printf("1=1\n");//1和2在判断质数函数中不好操作,单独列出来
else if(i==2) printf("2=2\n");
else{
if(zhi(i)) printf("%d=%d\n",i,i);//是质数直接列出来
else{ //不是质数就分解
printf("%d=",i);
fenjie(i);
}
}
}
return 0;
}0.0分
0 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复