[数论]唯一分解定理

来源:互联网 发布:大学生单片机自学视频 编辑:程序博客网 时间:2024/05/22 00:19
/*Name:唯一分解定理Actor:HTTime:2015年8月11日Error Reporte:*/#include <iostream>#include <stdio.h>#include <conio.h>#include <string.h>using namespace std;//任意整数可以化为一组素数积//n = p1^a1 * p2^a2 * p3^a3 ... ...int prise[1000];int gdd[1000];int eq[1000];int sum;void fun(int a){int i, j;for (i = 2; i*i <= a; i++){if (prise[i] != 0) continue;for (j = i; i*j <= a; j++){prise[i*j] = 1;}}sum = 0;memset(eq, 0, sizeof(eq));for (i = 2; i <= a; i++) if (prise[i] == 0){if (a%i == 0){gdd[sum] = i;while (a%i == 0){a /= i;eq[sum]++;}sum++;}}}int main(){int a;L:scanf("%d", &a);fun(a);int i;for (i = 0; i < sum; i++){printf("%d ^ %d\n", gdd[i], eq[i]);}//goto L;}

0 0