int islegal(char *data[],int ln){ int id=0; if (strcmp(data[0], "BSRule") != 0){ printf("规则语句出现语法错误,规则头应为BSRule,在 %d 行\n",ln); return 1; } if (strcmp(data[1], "http") != 0 && strcmp(data[1], "tcp") != 0 && strcmp(data[1], "udp") != 0 && strcmp(data[1], "tcp") != 0){ printf("规则语句出现语法错误,协议类型错误,在 %d 行\n",ln); return 2; } if (!isip(data[2]) || !isport(data[3])){ printf("规则语句出现语法错误,第一部分IP或端口数据错误,在 %d 行\n",ln); return 3; } if (strcmp(data[4],"->")!=0 && strcmp(data[4],"<-")!=0 && strcmp(data[4],"<->")!=0 ){ printf("规则语句出现语法错误,数据流方向符错误,在 %d 行\n",ln); return 4; } if(!isip(data[5]) || !isport(data[6])){ printf("规则语句出现语法错误,第二部分IP或端口数据错误,在 %d 行\n",ln); return 5; } if(!isid(data[8])){ printf("规则语句出现语法错误,规则ID号不合法,在 %d 行\n",ln); return 8; } if(!isuniq(id)){ id = atoi(data[8]); printf("规则语句出现语法错误,规则ID号不唯一,在 %d 行\n",ln); return 8; } return 0; }
int main() { long i,a,n; bool flag=0; while(scanf("%ld",&n)==1&&n) { if(flag) printf("\n"); else flag=1; bool got=0; for(i=10234;i<=98765;i++) if(i%n==0) { a=i/n; if(a>999) if(isuniq(i,a)) {got=1; printf("%.5ld / %.5ld = %ld\n",i,a,n);} } if(!got) printf("There are no solutions for %ld.\n",n); } return 0; }