poj1365 Prime Land

来源:互联网 发布:mysql高并发写入方案 编辑:程序博客网 时间:2024/05/26 09:57


数字的质因子分解。。


Code:

#include <cmath>#include <cstdio>#include <cstring>#include <iostream>using namespace std;typedef long long LL;int main() {    LL n, p, t, i;    int pri[100], e[100];    while (true) {        cin >> p;        n = 1;        while (0 != p) {            cin >> t;            n *= pow(p, t);            if (getchar() == '\n') break;            cin >> p;        }        if (p == 0) break;        int cnt = 0;        --n;//        printf("%d\n",n);        int k = 2;        memset(e, 0, sizeof(e));        while (k <=sqrt(n)) {            if (n % k == 0) {                pri[cnt] = k;                while (n % k == 0) {                    e[cnt]++;                    n /= k;                }//                printf("%d %d\n",pri[cnt], e[cnt]);                cnt++;            }            if (k != 2) k += 2;            else k++;        }        if(n>1)        {            pri[cnt] = n; e[cnt]++;            cnt++;        }        for (i = cnt-1; i >0; i--)            printf("%d %d ", pri[i], e[i]);        printf("%d %d\n",pri[0],e[0]);    }    return 0;}


原创粉丝点击