hdu_problem_2012_素数判定

/*
*
*Problem Description
*对于表达式n^2+n+41,当n在(x,y)范围内取整数值时(包括x,y)(-39<=x<y<=50),判定该表达式的值是否都为素数。
*
*
*Input
*输入数据有多组,每组占一行,由两个整数x,y组成,当x=0,y=0时,表示输入结束,该行不做处理。
*
*
*Output
*对于每个给定范围内的取值,如果表达式的值都为素数,则输出"OK",否则请输出“Sorry”,每组输出占一行。
*
*
*Sample Input
*0 1
*0 0
*
*
*Sample Output
*OK
*
*
*Author
*lcy
*
*
*Source
*C语言程序设计练习(二)
*
*
*Recommend
*JGShining
*
*/
#include<iostream>
using namespace std;
bool is_prime_num(int num) {
 for (int i = 2; i * i < num; i++) {
  if (num % i == 0) {
   return 0;
  }
 }
 return 1;
}
int main() {
 int x, y;
 int num;
 bool is_prime;
 while (cin >> x >> y) {
  is_prime = 1;
  if (x == 0 && y == 0) break;
  for (int n = x; n <= y; n++) {
   num = n * n + n + 41;
   if (!is_prime_num(num)) {
    cout << "Sorry\n";
    is_prime = 0;
    break;
   }
  }
  if (is_prime) cout << "OK\n";
 }
 system("pause");
 return 0;
}

猜你喜欢

转载自blog.csdn.net/CoderMaximum/article/details/86231303