解を求めます:潜伏します

1926 ワード

大神たち助けて!
E潜伏
 
Time Limit:1000 MS Memory Limit:65535 K問題型:プログラミング問題言語:無制限
説明
  ,OYY               MM.
  ,   MM    ,                      ,  MM       ,   MM           。

  OYY   MM     ,       ,           ,         。

MM        N(1 <= N <= 100000),       , OYY            i            。

 
入力フォーマット
   ,             ,    100000。 
   ,    M(1 <= M <= 100000),  OYY     。
 3 … M+2 ,      Pi(Pi                  ),   Pi          。

出力フォーマット
      ,         ,       “-1”。

入力サンプル
123185154231234984181212132123
6
3
5
8
13
21
30

出力サンプル
31
23
23
23
13
-1

Provider
a470086609 from SCAU
 
 
私が間違っているのは、文字列の中の数字をどのように整数に変換するか分からないことです.そして、条件に合った素数を見つけてからの終わりをどのように終わらせるか分かりません.
個人コード:
#include <stdio.h>
#include <math.h>
#include <string.h>
char s[100005];
int prime(int n)
{
    int j,k;
    k = sqrt(1.0*n);
    for(j=2; j<k; j++)
    {
        if(n%j == 0) return 0;
    }
    return 1;
}
int two(int m)
{
    if(m>=10) return 1;
    else return 0;
}
int main()
{
    int m,i,j,len;
    int k,k1,k2;
    while(gets(s))
    {
        len = strlen(s);
        scanf("%d",&m);
        while(m--)
        {
            scanf("%d",&i);
            for(j=i-1; j<len; j++)
            {
                k1 = (int)s[j];
                k2 = (int)s[j+1];
                k = 10*s[j]+s[j+1];
		//printf("%d,%d,%d

",k1, k2, k); if(prime(k) && two(k)) { printf("%d
",k); // } } printf("-1
"); } } return 0; }

 
解け!