#include <stdio.h> //1000000001 //10001 int binarySerach(int a[], int len, int key) { int low = 0, high = len - 1, mid; while (low < high) { mid = low + (high - low) / 2; if (a[mid] < key) { low++; } else if (a[mid] > key) { high--; } else { return mid; } } return -1; } int main() { int min[1000000001]; int max[1000000001]; int flag[1000000001] = {0}; int gap = 1; for (int i = 1;i < 1000000001;i++) { if (!flag[i]) { flag[i] = 1; min[gap] = i; max[gap] = i + gap; if (i + gap < 1000000001) { flag[i + gap] = 1; } gap++; } } int a, b; while(scanf("%d %d", &a, &b) != EOF) { int res = 1; int maxN = a > b ? a : b; int minN = a < b ? a : b; int index = binarySerach(min, gap, minN); if (index > 0 && max[index] == maxN) { res = 0; } printf("%d\n", res); } } /* F:\temp\22439316.113807\Main.c: In function 'main': F:\temp\22439316.113807\Main.c:23: error: size of array 'min' is too large F:\temp\22439316.113807\Main.c:24: error: size of array 'max' is too large F:\temp\22439316.113807\Main.c:25: error: size of array 'flag' is too large */ |
Double click to view unformatted code.