229074393haishuo @ 2022-10-19 23:07:35
制造回文数是按着题目中的提示来的, 但是全都超时了,求救
#include<stdio.h>
long isz(long x)
{
for (int i = 2; i < x; i++)
{
if (x % i == 0)
{
return 0;
break;
}
}
return 1;
}
int main()
{
int d1,d2,d3,d4,a,b,i=0,n=0;
long palindrome[11111],ans[10000];
scanf("%d%d", &a, &b);
for (d1 = 1; d1 <= 9; d1 += 2)
{ // 只有奇数才会是素数
palindrome[i] = d1;//(处理回文数...)
i++;
}
for (d1 = 1; d1 <= 9; d1 += 2)
{ // 只有奇数才会是素数
palindrome[i] = 10 * d1 + d1;//(处理回文数...)
i++;
}
for (d1 = 1; d1 <= 9; d1 += 2)
{ // 只有奇数才会是素数
for (d2 = 0; d2 <= 9; d2++)
{
palindrome[i] = 100 * d1 + 10 * d2 + d1 ;//(处理回文数...)
i++;
}
}
for (d1 = 1; d1 <= 9; d1 += 2)
{ // 只有奇数才会是素数
for (d2 = 0; d2 <= 9; d2++)
{
palindrome[i] = 1000 * d1 + 100 * d2 + 10 * d2 + d1;//(处理回文数...)
i++;
}
}
for (d1 = 1; d1 <= 9; d1 += 2)
{ // 只有奇数才会是素数
for (d2 = 0; d2 <= 9; d2++)
{
for (d3 = 0; d3 <= 9; d3++)
{
palindrome[i] = 10000 * d1 + 1000 * d2 + 100 * d3 + 10 * d2 + d1;//(处理回文数...)
i++;
}
}
}
for (d1 = 1; d1 <= 9; d1 += 2)
{ // 只有奇数才会是素数
for (d2 = 0; d2 <= 9; d2++)
{
for (d3 = 0; d3 <= 9; d3++)
{
palindrome[i] = 100000 * d1 + 10000 * d2 + 1000 * d3 + 100 * d3 + 10*d2+d1;//(处理回文数...)
i++;
}
}
}
for (d1 = 1; d1 <= 9; d1 += 2)
{ // 只有奇数才会是素数
for (d2 = 0; d2 <= 9; d2++)
{
for (d3 = 0; d3 <= 9; d3++)
{
for (d4 = 0; d4 <= 9; d4++)
{
palindrome[i] = 1000000 * d1 + 100000 * d2 + 10000 * d3 +1000*d4+ 100 * d3 + 10 * d2 + d1;//(处理回文数...)
i++;
}
}
}
}
for (d1 = 1; d1 <= 9; d1 += 2)
{ // 只有奇数才会是素数
for (d2 = 0; d2 <= 9; d2++)
{
for (d3 = 0; d3 <= 9; d3++)
{
for (d4 = 0; d4 <= 9; d4++)
{
palindrome[i] = 10000000 * d1 + 1000000 * d2 + 100000 * d3 + 10000 * d4 + 1000 * d4 + 100 * d3 +10*d2+d1;//(处理回文数...)
i++;
}
}
}
}
for (int j = 0; j < 11111; j++)
{
if (isz(palindrome[j]))
{
ans[n] = palindrome[j];
n++;
}
}
for (int j = 0; j < n - 1; j++)
printf("%ld\n", ans[j]);
return 0;
}```
by Light_az @ 2022-10-20 07:19:05
同志最好把样例先过掉
by WhiteDew_qwq @ 2022-10-20 07:20:20
j<11111那个循环那貌似有超时的风险
还有,要long就long long
by Light_az @ 2022-10-20 07:21:41
long isz(long x)
{
for (int i = 2; i * i <= x; i++)//稍微优化
{
if (x % i == 0)
{
return 0;
break;
}
}
return 1;
}
by Light_az @ 2022-10-20 07:23:18
@229074393haishuo
by WhiteDew_qwq @ 2022-10-20 07:24:12
打打表得了
by WhiteDew_qwq @ 2022-10-20 07:24:58
@lianzhuo 嗯,这就不会超了
by Light_az @ 2022-10-20 07:26:22
说来惭愧,开O2才过了,把记忆化打一下吧
by 229074393haishuo @ 2022-10-20 11:59:17
好的,谢谢大佬