-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsolution.php
More file actions
38 lines (36 loc) · 1.22 KB
/
solution.php
File metadata and controls
38 lines (36 loc) · 1.22 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
<?php
$_fp = fopen("php://stdin", "r");
if ($_fp) {
//SETUP INPUT DATA
$count = 0; // INPUT COUNTER
while (($buffer = fgets($_fp, 4096)) !== false) {
$lines[$count] = $buffer;
$count++;
}
if (!feof($_fp)) {
echo "Error: unexpected fgets() fail\n";
}
$number_of_cases = $lines[0]; // DEFINE T, NUMBER OF TEST CASES, aka THE FIRST LINE FROM THE INPUT
//**SOLUTION START **
$x=1; //START AT 1
while($x<=$number_of_cases) {
$total = 0; // RUNNING COUNT OF RESULT FOR EACH LINE
$number = $lines[$x];
$c=0; // CHARACTER ITERATOR
$string_length = strlen($number) - 1;
while($c<=$string_length){
$char = $number[$c];
if($char!=0){
$result = $number/$char; // EVALUATE FOR DIVISIBILITY
if(!strpos($result, '.')){ // NO DECIMAL FOUND, ASSUMED INT THUS EVENLY DIVISIBLE BY DIGIT
$total++; // INCREMENT COUNT FOR MATCHING DIGIT
}
}
$c++; // Internal Substring Char Iterator
}
echo $total . "\n"; //OUTPUT RESULT FOR EACH LINE
$x++; // INCREMENT $X, NEXT LINE
}
fclose($_fp); // CLOSE STDIO
}
?>