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
ソース:
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; }