解题思路: 由题目我们可知:是素数就以i=i的形式输出,不是就要以质因数分解的形式输出。
例:7是素数:7=7
64不是素数:64=2*2*2*2*2
所以,我们最好先打出一个函数判断是否是 素数
然后再搞定 以质因数分解 ,这个玩意也用一个函数来表示,不会的可以参考一下俺的代码中的int bs(long long n)
我全都用long long 是因为确保而已,int应该也是可以的!!
注意事项: 注意题目给的2< =a< =b< =10000
所以我们在 质因数分解 的函数代码中要把(64=2*2*2*2*2后面的质因数)判断到10000!!!!!!
切记!!!!
还有最后一个 * 不能输出来!
参考代码:
#include<iostream> using namespace std; long long ss(long long n) { long long i; if(n<2) return 0; for(i=2;i<n;i++) { if(n%i==0) return 0; } return 1; } void bs(long long n) { int i,t=0; for(i=2;i<=10000;i++) { if(n%i==0) { if(t==0) cout<<i; else cout<<"*"<<i; n/=i; i--; t++; } } cout<<endl; } int main() { long long i,a,b,sum=0; cin>>a>>b; for(i=a;i<=b;i++) { if(ss(i)==1) cout<<i<<"="<<i<<endl; else { cout<<i<<"="; bs(i); } } return 0; }
0.0分
1 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复