求出区间[a,b]中所有整数的质因数分解。
输入两个整数a,b。
每行输出一个数的分解,形如k=a1a2a3…(a1< =a2< =a3…,k也是从小到大的)(具体可看样例)
3 10
3=3
4=22
5=5
6=23
7=7
8=222
9=33
10=25
代码片
.
#include<stdio.h> #include<iostream> #include<math.h> using namespace std; int main() { int a,b,m,n; cin>>a>>b; for(int i=a;i<=b;i++) { m=i; n=2; cout<<m<<"="; while(n<=sqrt(m)) { if(m%n==0) { m=m/n; if(m>1) { cout<<n<<"*"; continue; } if(m==1) cout<<n<<endl; } n++; } if(m>1 && m<i) cout<<m<<endl; if(m==i) cout<<i<<endl; } }
这是一道分解质因数的题,说难也不难,说难也难,主要是考逻辑推理能力,每当运行结果不对时就把数带入,看是哪一步输出不对即可。