回复 10楼 C_戴忠意
数学表达式的符号跟编程的符号有时是不一样的 你自己写个程序输出3^2就知道了
int main(void) { int m, n; int x[] = { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 1 }; while (scanf("%d%d", &m, &n), m || n) { for (m += 39, n += 39; x[m] && m <= n ; m++); puts(m > n ? "OK" : "Sorry"); } return 0; }
#include<stdio.h> int panDuan(int c,int d) { int i,j; int flag = 0; for(i=c;i<=d;i++){ if(isSu(i)) flag++; } if(flag==(d-c+1)) return 1; else return 0; } int isSu(int x) // 判断是否是素数; { int j; int flag=1; for(j=2;j<=(x^2+x+41)/2;j++) { if((x^2+x+41)%j==0) { flag=0; break; } if(flag==0) return 0; } return 1; } int main() { int x,y; while(scanf("%d%d",&x,&y)!=EOF) { if(x==0&&y==0)break; if(panDuan(x,y))printf("OK\n"); else printf("Sorry\n"); } return 0; }
#include <stdio.h> #include <math.h> int ss(int n); int ff(int n); int main(void) { int x, y; int i; while (1) { scanf("%d%d", &x, &y); if (x == 0 && y == 0) break; for (i = x; i <= y; i++) if (!ss(ff(i))) break; if (i == (y + 1)) printf("OK\n"); else printf("Sorry\n"); } return 0; } int ss(int n) { int i; for (i = 2; i <= n / 2; i++) if (n % i == 0) break; if (i == (n / 2 + 1)) return 1; else return 0; } int ff(int n) { return (n * n + n + 41); }