社区讨论
88求调
P1217[USACO1.5] 回文质数 Prime Palindromes参与者 2已保存回复 4
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 4 条
- 当前快照
- 1 份
- 快照标识符
- @mllm67gy
- 此快照首次捕获于
- 2026/02/14 09:04 5 天前
- 此快照最后确认于
- 2026/02/17 11:15 前天
我有0、11、22、66、88分代码,分别是:
CPP//0
#include<bits/stdc++.h>
using namespace std;
bool hw(string n) {
stack<char>s;
for(int i = 0; i <= n.length()/2; i++) {
s.push(n[i]);
}
for(int i = ceil(n.length()/2.0); i < n.length(); i++) {
if(s.top() != n[i]) {
return 0;
}
s.pop();
}
}
bool ss(int n) {
if(n <= 1) {
return 0;
}
for(int i = 2; i*i <= n; i++) {
if(!(n % i)) {
return 0;
}
}
return 1;
}
int main() {
int mx, mn;
cin >> mx >> mx;
for(int i = mn; i <= mx; i++) {
if(ss(i) && hw(to_string(i))) {
cout << i << endl;
}
}
return 0;
}
CPP//11
#include <bits/stdc++.h>
using namespace std;
bool ip(int n){
if(n < 2) {
return 0;
}
if(!(n % 2)) {
return 0;
}
for(int i = 3; i * i <= n; i += 2){
if(!(n % i)) {
return 0;
}
}
return 1;
}
int gp(int n){
string s1 = to_string(n);
string s2 = s1;
s1.pop_back();
reverse(s2.begin(), s2.end());
s1 += s2;
return stoi(s1);
}
int main(){
int n, m;
cin >> n >> m;
if(n <= 5) {
cout << 5 << endl;
}
if(n <= 7) {
cout << 7 << endl;
}
if(n <= 11) {
cout << 11 << endl;
}
for(int i = 1; i <= m; i++){
int j = gp(i);
if(n <= j && m >= j && ip(j)) {
cout << j << endl;
}
}
return 0;
}
CPP//22
#include <bits/stdc++.h>
using namespace std;
bool ip(int n){
if(n < 2) {
return 0;
}
if(!(n % 2)) {
return 0;
}
for(int i = 3; i * i <= n; i += 2){
if(!(n % i)) {
return 0;
}
}
return 1;
}
int gp(int n){
string s1 = to_string(n);
string s2 = s1;
s1.pop_back();
reverse(s2.begin(), s2.end());
s1 += s2;
return stoi(s1);
}
int main(){
int n, m;
cin >> n >> m;
if(n <= 5) {
cout << 5 << endl;
}
if(n <= 7) {
cout << 7 << endl;
}
if(n <= 11) {
cout << 11 << endl;
}
for(int i = 10; i <= m; i++){
int j = gp(i);
if(n <= j && m >= j && ip(j)) {
cout << j << endl;
}
}
return 0;
}
CPP//66
#include <bits/stdc++.h>
using namespace std;
bool ip(int n){
if(!(n % 2)) {
return false;
}
for(int i = 3; i * i <= n; i += 2){
if(!(n % i)) {
return false;
}
}
return true;
}
bool gp(int n){
string s1 = to_string(n);
string s2 = s1;
reverse(s2.begin() , s2.end());
// cout << s1 << " "<< s2 << " " << s1.compare(s2) << endl;
return s1.compare(s2) == 0;
}
int main(){
int n, m;
cin >> n >> m;
if(n <= 5) {
cout << 5 << endl;
}
if(n <= 7) {
cout << 7 << endl;
}
if(n <= 11) {
cout << 11 << endl;
}
for(int i = n; i <= m; i++){
if(gp(i) && ip(i)) {
cout << i << endl;
}
}
return 0;
}
CPP//88
#include <bits/stdc++.h>
using namespace std;
bool ip(int n)
{
if (n % 2 == 0)
{
return false;
}
for (int i = 3; i * i <= n; i += 2)
{
if (n % i == 0)
{
return false;
}
}
return true;
}
bool gp(int n)
{
string s1 = to_string(n);
if (s1.size() % 2 == 0 && n % 11 == 0)
{
return true;
}
char lc = s1.at(s1.size() - 1);
if (lc == '0' || lc == '2' || lc == '4' || lc == '5' || lc == '6' || lc == '8')
{
return false;
}
string s2 = s1;
reverse(s2.begin(), s2.end());
// cout << s1 << " "<< s2 << " " << s1.compare(s2) << endl;
return s1.compare(s2) == 0;
}
int main()
{
int n, m;
cin >> n >> m;
for (int i = n; i <= m; i++)
{
if (i == 5 || i == 7 || i == 11)
{
cout << i << endl;
continue;
}
if (gp(i) && ip(i))
{
cout << i << endl;
}
}
return 0;
}
回复
共 4 条回复,欢迎继续交流。
正在加载回复...