Help me!

P1217 [USACO1.5] 回文质数 Prime Palindromes

Lin_Ziluo @ 2024-04-10 18:25:01

出了什么问题吗?

#include <iostream>
#include <iomanip>
#include <cstdio>
#include <fstream>
#include <cmath>
#include <string>
#include <cstring>
#include <algorithm>
using namespace std;
int a[15];
bool hwzs(int x){
    int ans1 = 0,ans2 = 0,ans = 0;
    for (int i = 2;i < x;i++) if (!(x % i)) return false; //刷掉合数。
    if (!(x / 10)) return true; //特判x为一位数的情况。 
    while (x){
        a[++ans] = x % 10;
        x /= 10;
    } //分离各位。 
    if (ans % 2){ //按位数的奇偶分开算。 
        for (int i = 1;i <= ans / 2 + 1;i++) ans1 += a[i] * pow(10,i - 1);
        for (int i = ans / 2 + 1;i <= ans;i++) ans2 += a[i] * pow(10,i - ans / 2 - 1); //如:a = {1,2,1},会分成12和21。  
    }else{
        for (int i = 1;i <= ans / 2;i++) ans1 += a[i] * pow(10,i - 1);
        for (int i = ans / 2 + 1;i <= ans;i++) ans2 += a[i] * pow(10,i - ans / 2 - 1); //如:a = {1,2,3,4},会分成12和34。 
    }                                                                           
    if (ans1 == ans2) return true;
    else return false; //判断是否是回文数。 
}
int main(){ //霉好的开始。 
    int a,b;
    cin >> a >> b; //输入a和b。 
    for (int i = a;i <= b;i++) if (hwzs(i)) cout << i << endl; //挨个判断是否是回文质数,是就输出。 
    return 0; //霉好的结束。 
}

by LJY_ljy @ 2024-04-10 20:57:54

@lpx0228 额你也没说是 WA 还是 TLE 啊,无语了

但是至少问题解决了就没问题了,但是您的代码应该可以跑得更快一点


上一页 |