社区讨论

答案运行正确但最后一点超时,求助,帮忙看下怎样优化

P1217[USACO1.5] 回文质数 Prime Palindromes参与者 3已保存回复 3

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
3 条
当前快照
1 份
快照标识符
@m2piw56u
此快照首次捕获于
2024/10/26 10:09
去年
此快照最后确认于
2025/11/04 16:06
4 个月前
查看原帖
C
#include <stdio.h>
#include <math.h>

int main()
{
    int a = 0, b = 0, i = 0, j = 0, m = 0, n = 0;
 
    scanf("%d %d", &a, &b);
    i = b - a + 1;
    int arr[i];
    
    for (i = a; i <= b; i++)
    {
        int u = i;
        int S = 0;
        //检验是否为回文数
        do
        {
            int num = u % 10;
            u /= 10;

            S = S + num;
            if (u)
            S *= 10;
        } while (u);

        if (S == i)           //存储回文数
        {
            arr[j] = S;
            j++;
        }

        //判断是否为质数

        
    }
    for (m = 0; m <= j - 1; m++)
    {
        int flag = 1;
        for (n = 2; n <= sqrt(arr[m]); n++)
        {
            if (arr[m] % n == 0)
            {
               flag = 0;           //若不为质数,操作终止,进入下次循环
               break;
            }
        }
        if (flag == 1)
        {
            printf("%d\n", arr[m]);
        }
    }
    return 0;
}

回复

3 条回复,欢迎继续交流。

正在加载回复...