int f() { col_o_2 = col1_2; col_2 = col2_2; col_o_5 = col1_5; col_5 = col2_5; for (int i=0; i<=LIM; ++i) { col_2[i] = 1; col_5[i] = 1; } ll c=0; for (int i=0; i<LIM; ++i) { next_r(row_2, i, N); next_c(col_2, col_o_2, i, N); next_r(row_5, i, N2); next_c(col_5, col_o_5, i, N2); for (int j=0; j<=i+1; ++j) { int t = (col_2[LIM-1] * row_2[j]) % N; //printf("%d,", row_2[j]); if (t==0) { ll t2 = col_5[LIM-1]; t2 = (t2*row_5[j]) % N2; if (t2==0) ++c; } //printf("%d,", t); } // printf("\n"); // for (int j=0; j<LIM; ++j) // printf("%d,", col_2[j]); // printf("\n"); printf("i=%d\n", i); } printf("%I64d\n", c); }
token get_token(){ int index = 0; for(;;next_char()){ if(peek == ' ' || peek == '\t') continue; else if(peek == '\n') line = line + 1; else break; } switch(peek){ case '&': if(next_c('&')) return and; else return Token('&'); case '|': if(next_c('|')) return or; else return Token('|'); case '=': if(next_c('=')) return eq; else return Token('='); case '!': if(next_c('=')) return ne; else return Token('!'); case '<': if(next_c('=')) return le; else return Token('<'); case '>': if(next_c('=')) return ge; else return Token('>'); } if(isdigit(peek)){ int v = 0; do{ v = v*10 + (peek-'0'); next_char(); }while(isdigit(peek)); if(peek != '.') return Num(v); float x = v; float d = 10; for(;;){ next_char(); if(!isdigit(peek)) break; x = x + (peek-'0')/d; d = d * 10; } return Real(x); } if(isalpha(peek)){ index = 0; memset(lexme,0,MAX_LEN); do{ lexme[index++] = peek; next_char(); }while(isalpha(peek) || isdigit(peek)); token t = get_from_hashtable(symbol,lexme); if(t != NULL) return t; if(!strcmp(lexme,"int")){ return TYPE_INT; } if(!strcmp(lexme,"float")) return TYPE_FLOAT; if(!strcmp(lexme,"char")) return TYPE_CHAR; t = Word(lexme,ID); put_in_hashtable(symbol,t); return t; } token tok = Token(peek); peek = ' ' ; return tok; }