九度1047(素数打表)
2015-01-23 20:09
169 查看
题目链接:http://ac.jobdu.com/problem.php?pid=1047
解题思路:
打表水过
完整代码:
解题思路:
打表水过
完整代码:
#include <functional> #include <algorithm> #include <iostream> #include <fstream> #include <sstream> #include <iomanip> #include <numeric> #include <cstring> #include <climits> #include <cassert> #include <complex> #include <cstdio> #include <string> #include <vector> #include <bitset> #include <queue> #include <stack> #include <cmath> #include <ctime> #include <list> #include <set> #include <map> using namespace std; #pragma comment(linker, "/STACK:102400000,102400000") typedef long long LL; typedef double DB; typedef unsigned uint; typedef unsigned long long uLL; /** Constant List .. **/ const int MOD = int(1e9)+7; const int INF = 0x3f3f3f3f; const LL INFF = 0x3f3f3f3f3f3f3f3fLL; const DB EPS = 1e-9; const DB OO = 1e20; const DB PI = acos(-1.0); //M_PI; /**BigNumber..**/ const int ten[4] = {1 , 10 , 100 , 1000}; const int maxl = 1000; struct BigNumber{ int d[maxl]; BigNumber(string s){ int len = s.size(); d[0] = (len - 1) / 4 + 1; int i , j , k; for(i = 1 ; i < maxl ; i ++) d[i] = 0; for(i = len - 1 ; i >= 0 ; i --){ j = (len - i - 1) / 4 + 1; k = (len - i - 1) % 4; d[j] += ten[k] * (s[i] - '0'); } while(d[0] > 1 && d[d[0]] == 0) --d[0]; } BigNumber(){ *this = BigNumber(string("0")); } string toString(){ string s(""); int i , j , temp; for(i = 3 ; i >= 1 ; i --){ if(d[d[0]] >= ten[i]) break; } temp = d[d[0]]; for(j = i ; j >= 0 ; j --){ s = s + (char)(temp / ten[j] + '0'); temp %= ten[j]; } for(i = d[0] - 1 ; i > 0 ; i --){ temp = d[i]; for(j = 3 ; j >= 0 ; j --){ s = s + (char)(temp / ten[j] + '0'); temp %= ten[j]; } } return s; } }zero("0") , d , temp , midl[15]; BigNumber operator + (const BigNumber &a , const BigNumber &b){ BigNumber c; c.d[0] = max(a.d[0] , b.d[0]); int i , x = 0; for(i = 1 ; i <= c.d[0] ; i ++){ x = a.d[i] + b.d[i] + x; c.d[i] = x % 10000; x /= 10000; } while(x != 0){ c.d[++c.d[0]] = x % 10000; x /= 10000; } return c; } BigNumber operator - (const BigNumber &a , const BigNumber &b){ BigNumber c; c.d[0] = a.d[0]; int i , x = 0; for(i = 1 ; i <= c.d[0] ; i ++){ x = 10000 + a.d[i] - b.d[i] + x; c.d[i] = x % 10000; x = x / 10000 - 1; } while((c.d[0] > 1) && (c.d[c.d[0]] == 0)) -- c.d[0]; return c; } const int maxn = 1000001; bool is[maxn]; void f() { memset(is , true , sizeof(is)); is[0] = is[1] = false; int m = sqrt(maxn); for(int i = 2 ; i <= m ; i ++) { if(is[i]) { for(int j = i * i ; j < maxn ; j += i) is[j] = false; } } } int main() { #ifdef DoubleQ freopen("in.txt","r",stdin); #endif std::ios::sync_with_stdio(false); std::cin.tie(0); int n; f(); while(cin >> n) { if(is ) cout << "yes" << endl; else cout << "no" << endl; } }
相关文章推荐
- 九度OJ-1047:素数判定
- 九度oj 题目1047:素数判定
- 九度OJ 1047:素数判定 (素数)
- 九度oj 素数 1047,1163,1040,1140
- 九度OJ 1047:素数判定 (素数)
- 九度OJ题目1047:素数判定
- 【九度OJ】:1047 素数
- 九度OJ1047(素数判断)----20140802
- 【九度OJ】1047【素数判断】
- 九度OJ题目1047:素数判定
- 九度1047 素数判定
- 【九度OJ】题目1047:素数判定 解题报告
- 九度OJ 1047素数判定 解题报告
- 【九度】题目1047:素数判定
- 九度题目1047素数判定
- 九度 OJ 1047:素数判定
- 九度-1047-素数判定
- codeforces #546D# Soldier and Number Game(Dp,素数打表)
- hdu 2098 素数打表
- HDU 2098 分拆素数和 遍历+素数打表