PAT 甲级1152 Google Recruitment (20 分)

朴灿烈づ我的快乐病毒、 2023-08-17 17:36 224阅读 0赞

输入格式

每个输入文件包含一个测试用例。
每种情况首先在一行中给出两个正整数:L(≤1,000)和K(<10),它们分别是给定数字的位数和要找到的质数。然后在下一行给出L位数字N。

输出格式

对于每个测试用例,在一行中连续打印N个连续数字中的第一个K位素数。如果不存在这样的数字,则输出404。
注意:前导零也必须算作K位的一部分。例如,要在200236中找到4位数的质数,可以使用0023。但是,由于前导零不在原始数字中,因此不能将第一个数字2视为解决方案0002。
在这里插入图片描述
题目就是从一个不超过一千位的数里面从前往后取连续的k位数,看该数是否是素数,如果是输出该数,不是的话输出404
有一个小测试蛮坑的,就是输出的时候如果连续的K位前面是0,也要一起输出。
举个例子,题目要求3位素数,结果是005,不能输出5,而是005

  1. #include<iostream>
  2. #include<cmath>
  3. #include<cstring>
  4. using namespace std;
  5. bool isprime(int num)
  6. {
  7. if(num==0||num==1)return false;
  8. else
  9. {
  10. for(int i=2;i<=sqrt(num);i++)
  11. {
  12. if(num%i==0)return false;
  13. }
  14. return true;
  15. }
  16. }
  17. int main()
  18. {
  19. string s,ss;
  20. int a,b,temp;
  21. cin>>a>>b;
  22. cin>>s;//getline(cin,s);
  23. for(int i=0;i<=a-b;i++)
  24. {
  25. ss=s.substr(i,b);
  26. temp=stoi(ss);
  27. if(isprime(temp))
  28. {
  29. cout<<ss<<endl;
  30. return 0;
  31. }
  32. }
  33. cout<<"404"<<endl;
  34. return 0;
  35. }

发表评论

表情:
评论列表 (有 0 条评论,224人围观)

还没有评论,来说两句吧...

相关阅读