4 条题解
-
0刘克麟 (liukelin1) LV 4 @ 2024-6-1 18:48:24
ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo00(|^|)
-
02023-12-24 11:28:43@
拆成一半!!!哈哈哈
#include <iostream> #include <cmath> #pragma GCC optimize(3) using namespace std; const int N=1e8+10; int n,ans; long long sum[N],len; bool c1(int x) { if(x==1) { return 0; } for(int i=2;i<=sqrt(x);++i) { if(x%i==0) { return 0; } } return 1; } int main() { ios::sync_with_stdio(0); cin.tie(NULL); cout.tie(NULL); cin>>n; if(n==1) { cout<<4<<endl<<"2 3 5 7"; return 0; } long long c; if(n&1) { c=pow(10,n/2-1); for(int i=c;i<=c*10-1;++i) { for(int k=0;k<=9;k++) { long long p=i,l=0; while(p!=0) { l*=10; l+=p%10; p/=10; } long long j=i; j*=10; j+=k; j*=c*10; j+=l; if(c1(j)) { ans++; sum[++len]=j; } } } } else { c=pow(10,n/2-1); for(int i=c;i<=c*10-1;++i) { long long p=i,l=0; while(p!=0) { l*=10; l+=p%10; p/=10; } long long j=i; j*=c*10; j+=l; if(c1(j)) { ans++; sum[++len]=j; } } } cout<<ans<<endl; for(int i=1;i<=len;++i) { cout<<sum[i]<<" "; } return 0; }
-
02023-5-28 20:03:34@
如果你也跟我我一样TLE,那么这件事情真的是泰库……啊呸,回归正题
看到这题,我就想到先暴力每一个数,先判断素数,再判断回文数,这样太慢啦!喜得吉利分数66,但是不要怕,我会比你先WA的!
经过了114514个夜晚的苦思冥想,我终于想出来啦:先枚举范围内的回文数,在逐一判断素数,果仁AC了
核心代码:
for(int i=10;i<=99999;i++){//上限是9位,就枚举到9/2+1位 int tmp=i/10,k=i;//细节除以10,由于除了11,所有的偶数位数都不是素数 while(tmp)k=k*10+tmp%10,tmp/=10;//创造奇数位回文数 if(x<=k&&k<=y&&is_prime(k))//代码区: 提示:将符合的数加入数组;//判断是否在范围内 }
(记得特判1位数和两位数,我的代码还是可以优化的)
-
02023-4-21 21:11:51@
#include<iostream> using namespace std; int nn[6000]; int main() { int n,s=1,x,y,num=0; bool f; cin>>n; if(n==2) cout<<"1\n11"; else if(n%2==0) cout<<0; else if(n==1) cout<<"4\n2 3 5 7"; else { for(int i=1;i<(n+1)/2;i++)s*=10;//以1*10^((n+1)/2-1)为基数 for(int i=s;i<s*10;i++) {//到1*10^((n+1)/2)结束 f=1; for(y=i/10,x=i;y>0;y/=10)x=x*10+y%10;//构造回文数 for(int j=2;j*j<=x;j++)//判断构造数是否为素数 if(x%j==0) { f=0; break; } if(f)nn[num++]=x; } cout<<num<<endl; for(int i=0;i<num;i++) cout<<nn[i]<<" "; } return 0; }
- 1
信息
- ID
- 1001
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 8
- 标签
- 递交数
- 321
- 已通过
- 61
- 上传者