-
输入一个数,输出其素因子分解表达式。
- 输入一个整数 n (2 <= n < 100)。
- 输出该整数的因子分解表达式。
表达式中各个素数从小到大排列。
如果该整数可以分解出因子a的b次方,当b大于1时,写做 a^b ;当b等于1时,则直接写成a。 -
60
-
2^2*3*5
-
题型/思路
计算因子分解。设计一个struct分别存储一个数的质因数、和其因数对应的指数。 求一个数的各个质因数(拆分成因子)的模板:(方法)
for(int i=2;i<=n;i++){//i是for循环index,切记!这里i<=n! if(n%i==0){ len++; c[len].a=i; } while(n%i==0){//直到不能被该因子整除,退出循环 n=n/i; c[len].b++;//指数++ //n=n/i; } }
AC代码
-
-
#include <iostream> using namespace std; struct node{ int a;//质因数 int b;//质因数的指数 }c[105];//a数组存放(质因数,其对应指数) 的数对 int main(int argc, char** argv) { int len=0;//c数组的index int n; cin>>n; for(int i=2;i<=n;i++){//i是for循环index,切记!这里i<=n! if(n%i==0){ len++; c[len].a=i; } while(n%i==0){//直到不能被该因子整除,退出循环 n=n/i; c[len].b++;//指数++ //n=n/i; } } /* cout<<len<<endl; //中间测试输出len 和质因数 for(int i=1;i<=len;i++){ cout<<c[i].a<<" "; } cout<<endl; */ for(int i=1;i<len;i++){ cout<<c[i].a ; if(c[i].b>1){ cout<<"^"<<c[i].b; } cout<<"*"; } cout<<c[len].a ; if(c[len].b>1){ cout<<"^"<<c[len].b; } return 0; }
【质因子分解】2017研究生推免上机考试 A:因子分解
原创
©著作权归作者所有:来自51CTO博客作者晓风洁露的原创作品,请联系作者获取转载授权,否则将追究法律责任
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
阶乘因式分解(二)
阶乘因式分解(二)时间限制:3000 ms | 内存限制:65535 KB难度:3描述给定两个数
模拟 测试数据 #include 分解质因数