hdu 2012――素数判定解題報告


原題:
 
Problem Description
 
式n^2+n+41に対して、nが(x,y)の範囲で値を整数化する場合(x,yを含む)(-39<=x<=y<=50)、この式の値はすべて素数であるかどうかを判定する。
 
Input
 
入力データは複数のグループがあり、各グループが1行を占め、2つの整数x、yからなり、x=0、y=0の場合、入力が終了したことを示し、その行は処理しない。
 
Output
 
与えられた範囲内の各取得値に対して、表式の値が素数であれば、「OK」を出力します。そうでなければ、「Sorry」を出力してください。各グループの出力は1ラインです。
 
Sample Input
 
0 1 0 0
 
Sample Output
 
OK
ソース:
#include<stdio.h> #include<math.h> int main() {     int m,n,f;     double k;     while(scanf("%d%d",&m,&n)&&(m!=0||n!=0))     {         f=0;         k=sqrt(n*n+n+41);         for(int i=m; i<=n; i++)         {             int ans=i*i+i+41;             for(int j=2; j<=k; j++)             {                 if(ans%j==0)                 {                     f=1;                     break;                 }             }         }         if(!f)             printf("OK
"); else printf("Sorry
"); } return 0; }