Pagini recente » Cod sursa (job #686071) | Cod sursa (job #1647972) | Cod sursa (job #1206806) | Cod sursa (job #1693488) | Cod sursa (job #1935189)
#include<cstdio>
#define hash Filter[sum + product]
struct Filter{
bool beenHere : 1;
bool div2 : 1, div3 : 1, div5 : 1, div7 : 1, div11: 1;
bool len1 : 1, len2 : 1, len3 : 1, len4 : 1, len5 : 1, len6 : 1;
bool len7 : 1, len8 : 1, len9 : 1, len10: 1, len11: 1, len12: 1;
bool len13: 1, len14: 1, len15: 1, len16: 1, len17: 1, len18: 1;
}Filter[10170];
inline long long get_nr(int &sum, int &product, int &length){
sum = 0; product = 1; length = 0;
long long number = 0;
char c = getchar();
while(!(47 < c && c < 58)){
c = getchar();
}
while(47 < c && c < 58){
number = number * 10 + (c - '0');
sum += (c - '0'); length++;
product = (product * (c - '0')) % 10007;
c = getchar();
}
return number;
}
long long N, Q;
int sum, length, product;
int answer;
int main(){
freopen("dtcsu.in", "r", stdin);
freopen("dtcsu.out", "w", stdout);
for(int i = 1; i <= 276997; i++){
N = get_nr(sum, length, product);
Filter[sum + product].beenHere = true;
if(N % 2) hash.div2 = true; if(N % 3) hash.div3 = true;
if(N % 5) hash.div5 = true; if(N % 7) hash.div7 = true;
if(N % 11) hash.div11 = true;
if(length == 1) hash.len1 = true; if(length == 2) hash.len2 = true; if(length == 3) hash.len3 = true;
if(length == 4) hash.len4 = true; if(length == 5) hash.len5 = true; if(length == 6) hash.len6 = true;
if(length == 7) hash.len7 = true; if(length == 8) hash.len8 = true; if(length == 9) hash.len9 = true;
if(length ==10) hash.len10= true; if(length ==11) hash.len11= true; if(length ==12) hash.len12= true;
if(length ==13) hash.len13= true; if(length ==14) hash.len14= true; if(length ==15) hash.len15= true;
if(length ==16) hash.len16= true; if(length ==17) hash.len17= true; if(length ==18) hash.len18= true;
}
Q = get_nr(sum, length, product);
while(Q--){
N = get_nr(sum, length, product);
if(hash.beenHere == false || (N % 2) && hash.div2 == false ||
(N % 3) && hash.div3 == false || (N % 5) && hash.div5 == false ||
(N % 7) && hash.div7 == false || (N %11) && hash.div11== false ||
(length == 1) && hash.len1 == false || (length == 2) && hash.len2 == false || (length == 3) && hash.len3 == false ||
(length == 4) && hash.len4 == false || (length == 5) && hash.len5 == false || (length == 6) && hash.len6 == false ||
(length == 7) && hash.len7 == false || (length == 8) && hash.len8 == false || (length == 9) && hash.len9 == false ||
(length ==10) && hash.len10== false || (length ==11) && hash.len11== false || (length ==12) && hash.len12== false ||
(length ==13) && hash.len13== false || (length ==14) && hash.len14== false || (length ==15) && hash.len15== false ||
(length ==16) && hash.len16== false || (length ==17) && hash.len17== false || (length ==18) && hash.len18== false){
continue;
}else{
answer++;
}
}
printf("%d", answer);
return 0;
}