Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- // Deviņciparu skaitlis.
- // Skaitlī nav nulles, neviens cipars skaitlī neatkārtojas.
- // Divi pirmie skaitļa cipari (no kreisās) veido skaitli, kurš dalās ar 2
- // Trīs pirmie skaitļa cipari (no kreisās) veido skaitli, kurš dalās ar 3
- // Četri pirmie skaitļa cipari (no kreisās) veido skaitli, kurš dalās ar 4
- // Pieci pirmie skaitļa cipari (no kreisās) veido skaitli, kurš dalās ar 5
- // Seši pirmie skaitļa cipari (no kreisās) veido skaitli, kurš dalās ar 6
- // Septiņi pirmie skaitļa cipari (no kreisās) veido skaitli, kurš dalās ar 7
- // Astoņi pirmie skaitļa cipari (no kreisās) veido skaitli, kurš dalās ar 8
- // Visi deviņi skaitļa cipari veido skaitli, kurš dalās ar 9, jeb pats dotais deviņciparu skaitlis dalās ar 9
- function builda($a){
- $res = 0;
- $b = array_reverse($a);
- array_walk($b, function($i, $k) use(&$res) {
- $res += pow(10, $k) * $i;
- });
- return $res;
- }
- function build1(){
- for ($i = 1; $i <= 9; $i++)
- yield [$i];
- }
- function buildn($n){
- if($n == 1)
- yield from build1();
- else
- foreach (buildn($n - 1) as $a){
- $c = builda($a);
- for ($i = 1; $i <= 9; $i++)
- if(!(in_array($i, $a) || "$c$i" % $n))
- yield array_merge($a, [$i]);
- }
- }
- foreach (buildn(9) as $i) {
- print builda($i)."\n";
- }
Add Comment
Please, Sign In to add comment