分解质因数

简介: 分解质因数

题目描述


给定一个区间 [a,b],请你求出区间 [a,b]中所有整数的质因数分解


输入描述


输入共一行,包含两个整数 a,b。

2≤a≤b≤10^3。


输出描述


每行输出一个数的分解,形如 k=a1×a2×a3⋯(a1≤a2≤a3⋯,k也是从小到大的)(具体可看样例)


输入输出样例


示例

输入

3 10

输出

1. 3=3
2. 4=2*2
3. 5=5
4. 6=2*3
5. 7=7
6. 8=2*2*2
7. 9=3*3
8. 10=2*5

运行限制


  • 最大运行时间:1s
  • 最大运行内存: 128M

思路


设计factor函数,传入一个数,寻找可以整除他的质数,如果没有被除尽,则说明剩余的数是最大的质数。


代码


1. #include<bits/stdc++.h>
2. using namespace std;
3. int p[20];
4. int c[40];
5. int factor(int n){
6.     int m=0;
7. for(int i=2;i<=sqrt(n);i++){
8. if(n%i==0){
9.             p[++m]=i;c[m]=0;
10.             while(n%i==0)
11.                 n/=i,c[m]++;
12.         }
13.     }
14. if(n>1){
15.         p[++m]=n;
16.         c[m]=1;
17.     }
18. return m;
19. }
20. int main(){
21.     int a,b;
22.     cin>>a>>b;
23. for(int i=a;i<=b;i++){
24.         int m=factor(i);
25.         cout<<i<<"=";
26. for(int j=1;j<=m;j++){
27. for(int k=1;k<=c[j];k++){
28.                 cout<<p[j];
29. if(k<c[j]) cout<<"*";
30.             }
31. if(j<m) cout<<"*";
32.         }
33.         cout<<endl;
34.     }
35. return 0;
36. }
目录
相关文章
筛质数、分解质因数和快速幂的应用
筛质数、分解质因数和快速幂的应用
73 0
|
4月前
将一个正整数分解质因数
将一个正整数分解质因数。
71 8
|
8月前
|
算法
【力扣】1. 两数之和、167. 两数之和Ⅱ-输入有序数组
【力扣】1. 两数之和、167. 两数之和Ⅱ-输入有序数组
|
8月前
|
人工智能 Java C++
分解质因数
分解质因数
62 1
分解质因数答疑
为什么n % i == 0就是质数 因为在枚举到i之前已经把n中2到i-1的质因子除干净了,此时n中不含2到i-1的质因子,由于n为i的倍数,所以i中也不包含2到i-1的质因子。如果i可以整除前面的i - 1中的数那么i = x * (i - 1),n = x2 * (x * (i - 1)); 矛盾了 为什么只需要枚举到根号N
96 2
【每周一坑】​正整数分解质因数 +【解答】计算100以内质数之和
关于分解质因数:每个合数都可以写成几个质数相乘的形式,其中每个质数都是这个合数的因数,把一个合数用质因数相乘的形式表示出来,叫做分解质因数。分解质因数只针对合数。
|
算法 C语言 C++
【数论】试除法判断质数,分解质因数,筛质数
将定义进行模拟,若整除了除1与其自身的另外的数,则为质数
144 0
|
机器学习/深度学习 C语言
【C素数】素数(质数)和分解质因数
【C素数】素数(质数)和分解质因数
138 0
【C素数】素数(质数)和分解质因数