【PAT Advanced Level】1015. Reversible Primes (20)
2013-10-31 20:06
411 查看
转换进制&&逆序可以在一起进行,有一点技巧,不要用十进制数来表示低进制,容易溢出。
#include <iostream> #include <vector> using namespace std; bool isPrime(int n) { if(n < 2) return false; if(n == 2) return true; if(n % 2 == 0) return false; for(int i = 3; i < n; i += 2) { if(n % i == 0) return false; } return true; } int reverseRadix(int n, int d) { vector<int> v; int reverse = n; while (reverse != 0) { int tmp = reverse % d; if(tmp != 0) v.push_back(tmp); for(int i = 0; i < v.size(); i++) v[i] *= d; reverse /= d; } int result = 0; for(int i = 0; i < v.size(); i++) result += v[i] / d; return result; } int main() { int n, d; while (cin>>n) { if(n < 0) break; cin>>d; int r = reverseRadix(n, d); if(isPrime(r) && isPrime(n)) cout<<"Yes"<<endl; else cout<<"No"<<endl; } }
相关文章推荐
- PAT (Advanced Level) 1015. Reversible Primes (20) 翻转质数
- PAT (Advanced Level) Practise 1015. Reversible Primes (20)
- PAT (Advanced Level) Practise 1015. Reversible Primes (20) 素数筛法 进制转换
- 【PAT Advanced Level】1015. Reversible Primes (20)
- PAT (Advanced Level)1015. Reversible Primes (20)
- PAT (Advanced Level) 1015. Reversible Primes (20)
- 浙大 PAT Advanced level 1015. Reversible Primes (20)
- 【PAT】【Advanced Level】1015. Reversible Primes (20)
- 1015. Reversible Primes (20) ——PAT (Advanced Level) Practise
- 1015. Reversible Primes (20) ——PAT (Advanced Level) Practise
- PAT (Advanced Level) Practise 1015. Reversible Primes (20)
- 【c++】PAT (Advanced Level)1015. Reversible Primes (20)
- PAT (Advanced Level) Practise 1104 Sum of Number Segments (20)
- PAT (Advanced Level) 1081. Rational Sum (20) 分数求和,辗转相除法求gcd
- PAT (Advanced Level) Practise 1124 Raffle for Weibo Followers (20)
- 【c++】PAT (Advanced Level)1041. Be Unique (20)
- 1069. The Black Hole of Numbers (20)【模拟】——PAT (Advanced Level) Practise
- 1084. Broken Keyboard (20)【字符串操作】——PAT (Advanced Level) Practise
- PAT-PAT (Advanced Level) Practise A+B and C (64bit) (20) 【二星级】
- PAT (Advanced Level) 1077. Kuchiguse (20)