帮到我的是大神

我为什么超时呢?
include<iostream>
using namespace std;
bool prime(int n)
{
int i;
for(i=2;i<n;i++) if(n%i==0) return false; return true; } int hw(int x) { int r,m=0; while(x>0)
{
r=x%10;
m=m*10+r;
x=x/10;
}
return m;
}
int main()
{
int i,j,k,n,m;
cin>>n>>m;
for(i=n;i<=m;i++)
{
if(prime(i)&&i==hw(i))
cout<<i<<endl;
}
return 0;
}

8 条评论

  • @ 2016-08-17 14:45:55

    对不起,一开始我不知道你用的是c++

  • @ 2016-08-17 14:45:35

    你的程序正确了,恭喜你成为大神级别!!!

  • @ 2016-08-17 14:43:39

    要不然帮不到我,不是大神

  • @ 2016-08-17 14:43:22

    请用c++做

  • @ 2016-08-17 14:42:05

    请用c++做

  • @ 2016-08-17 14:31:38

    哦man

  • @ 2016-08-17 13:21:58

    谁说要打表

    #include <bits/stdc++.h>
    bool check(int x) {
      int len = 0,b = x,c = x;
      for (;b;len++) b /= 10;
      if(!len%2) return false;
      int a[101];
      if (!x%2) return false;
      memset(a,0,sizeof(a));
      for(int i = 1;i <= len;i++) {
        a[i] = x%10;
        x /= 10;
      }
      for (int i = 1;i <= (len+1)/2;i++)
        if (a[i] != a[len+1-i]) return false;
      for (int i = 2;i <= sqrt(c);i++)
        if(c%i==0) return false;
      return true;
    }
    int main() {
      int L,R;
      scanf("%d%d",&L,&R);
      R = std :: min(R,10000000);
      for (int i = L;i <= R;i++)
        if (check(i)) printf("%d\n",i);
      return 0;
    }
    
  • @ 2016-08-17 12:49:21
    // input code here
    ```打表吧,一个个判断如果数据多肯定是超时的
    
  • 1

信息

ID
1042
难度
7
分类
搜索 | 搜索与剪枝 点击显示
标签
(无)
递交数
6601
已通过
1521
通过率
23%
被复制
13
上传者