解を求めます:潜伏します
1926 ワード
大神たち助けて!
E潜伏
Time Limit:1000 MS Memory Limit:65535 K問題型:プログラミング問題言語:無制限
説明
入力フォーマット
出力フォーマット
入力サンプル
出力サンプル
Provider
a470086609 from SCAU
私が間違っているのは、文字列の中の数字をどのように整数に変換するか分からないことです.そして、条件に合った素数を見つけてからの終わりをどのように終わらせるか分かりません.
個人コード:
解け!
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;
}
解け!