1 条题解
-
0
C :
#include <stdio.h> #include <string.h> #include <math.h> int isprime(long long int n){ if(n<2) return 0; else{ for(long long int i=2;i*i<=n;i++){ if(n%i==0) return 0; } return 1; } } int ishuiwen(long long int n){ long long int a[50]={0},i,j,bp=0; while(n){ a[bp++]=n%10; n/=10; } for(i=0,j=bp-1;i<j;i++,j--) if(a[i]!=a[j]) return 0; return 1; } int hwlen(long long int n){ long long int a[50]={0},i,j,bp=0; while(n){ a[bp++]=n%10; n/=10; } return bp; } int main(){ long long int i,j,l,r; scanf("%lld%lld",&l,&r); for(i=l;i<=r;i++){ if(i%2==0&&i!=2) continue; if(i%5==0&&i!=5) continue; if(hwlen(i)%2==0&&i!=11) continue; if(!ishuiwen(i)) continue; if(isprime(i)==1) printf("%lld\n",i); } }
C++ :
#include <bits/stdc++.h> using namespace std; bool isP(int x) { if (x < 2) return false; for (long long i = 2; i * i <= x; i ++) { if (x % i == 0) return false; } return true; } int main() { int a, b; vector <int> v; cin >> a >> b; for (int i = 1; i <= 9999; i ++) { int j = i, base = 1, t = 0; while (j) { base *= 10; t = t * 10 + j % 10; j /= 10; } int num1 = i * base + t; int num2 = i * (base / 10) + t % (base / 10); if (num1 >= a && num1 <= b && isP(num1)) v.push_back(num1); if (num2 >= a && num2 <= b && isP(num2)) v.push_back(num2); } sort(v.begin(), v.end()); for (int i = 0; i < v.size(); i ++) cout << v[i] << endl; return 0; } /* 1234 12340000 + 4321 123000 + 321 */
- 1
信息
- ID
- 1870
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者