首页 > 代码库 > 素因子分解
素因子分解
使用唯一素因子分解定理进行:
1 #include <cstdio> 2 #include <cmath> 3 #include <cstring> 4 #define ll long long 5 const int MAX_N = 1000; 6 int f[MAX_N + 1]; // 存储素因子 7 int e[MAX_N + 1]; // 素因子的幂次 8 int prime_factors(int n){ 9 memset(f,0,sizeof f),memset(e,0,sizeof e);10 int cnt = 0; // 素因子的个数11 int m = (int)sqrt(n + 0.5);12 for(int i = 2 ; i <= m ; i++)if(n % i == 0){13 f[cnt] = i;14 while(n % i == 0) n /= i,e[cnt]++;15 cnt++;16 }17 if(n > 1) f[cnt] = n,e[cnt++] = 1;18 return cnt;19 }20 int main(){21 for(int i = 2 ; i <= 100 ; i++){22 int cnt = prime_factors(i); printf("%d:",i);23 for(int j = 0 ; j < cnt ; j++){24 printf("%d^%d",f[j],e[j]);25 if(j != cnt - 1) printf("*");26 }27 printf("\n");28 }29 return 0;30 }
素因子分解
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。