poj 1365 Prime Land
2015-03-26 10:43
218 查看
一开始被输入格式卡住了,水题一道。。
#include<iostream> #include<cstdio> #include<cstdlib> #include<cstring> #include<string> #include<queue> #include<algorithm> #include<map> #include<iomanip> #include<climits> #include<string.h> #include<numeric> #include<cmath> #include<stdlib.h> #include<vector> #include<stack> #include<set> #define INF 1e7 #define MAXN 100010 #define maxn 1000010 #define Mod 1000007 #define N 1010 using namespace std; typedef long long LL; int prime[32000]; int vis[32000]; void run() { int k = 1; for (int i = 2; i <= 32000; ++i) if (!vis[i]) { prime[k++] = i; for (int j = i*i; j <= 32000; j += i) vis[j] = 1; } /*for (int i = 1; i < k; ++i) cout << prime[i] << " "; cout << endl;*/ } int n, m; int p[33000], e[33000]; int index, flag, cnt; int main() { run(); while (1) { index = 0; flag = 0; while (1) { cin >> n; if (n == 0) { flag = 1; break; } cin >> m; p[index] = n, e[index++] = m; char ch = getchar(); if (ch == '\n') break; } if (flag == 1) break; LL num = 1; for (int i = 0; i < index; ++i) { num *= pow(p[i], e[i]); } num--; int k = 2; cnt = 0; memset(p, 0, sizeof(p)); memset(e, 0, sizeof(e)); while (num != 1) { while (num % k == 0) { p[cnt] = k; num /= k; e[cnt]++; } k++; cnt++; } for (int i = cnt - 1; i >= 0; --i) if (p[i]){ if (i != cnt - 1) cout << " "; cout << p[i] << " " << e[i]; } puts(""); } return 0; }
相关文章推荐
- POJ 1365 Prime Land
- poj 1365 Prime Land
- poj 1365 Prime Land 唯一分解定理
- POJ 1365 Prime Land
- Prime Land(poj 1365)
- POJ 1365 -- Prime Land
- [水+整数分解] poj 1365 Prime Land
- POJ-1365-Prime Land
- poj 1365
- POJ 1365
- poj 1365(素数分解。。。)
- POJ 1365 基础数论回顾。
- POJ 1365(质因数分级+素数打表)
- POJ 1365 Prime Land
- poj 1365
- poj 1365 Prime Land
- POJ1365 - Prime Land(质因数分解)
- POJ 1365 Prime Land(数论)
- poj 1365 Prime Land (数学--唯一分解定理)
- poj 1365 Prime Land 【简单数论】