Skip to content

Instantly share code, notes, and snippets.

@adamcrussell
adamcrussell / aoc_1.p
Created December 8, 2020 21:59
2020 Advent Of Code Day 1
check_and_read(10, [] ,_):-
!.
check_and_read(13, [], _):-
!.
check_and_read(32, [], _):-
!.
check_and_read(end_of_file, [], _):-
!.
check_and_read(Char, [Char|Chars], Stream):-
get_code(Stream, NextChar),
@adamcrussell
adamcrussell / ch-1.pl
Created October 18, 2020 05:40
Perl Weekly Challenge 082
use strict;
use warnings;
##
# You are given 2 positive numbers $M and $N.
# Write a script to list all common factors of the given numbers.
##
sub factor{
my($n) = @_;
my @factors = (1);
foreach my $j (2..sqrt($n)){
@adamcrussell
adamcrussell / ch-1.pl
Created October 18, 2020 05:39
Perl Weekly Challenge 081
use strict;
use warnings;
##
# You are given 2 strings, $A and $B.
# Write a script to find out common base strings in $A and $B.
##
use boolean;
sub contains{
my($s0) = @_;
@adamcrussell
adamcrussell / ch-1.cxx
Last active October 5, 2020 16:10
Perl Weekly Challenge 080
#include <iostream>
#include <algorithm>
#include <vector>
/*
* You are given an unsorted list of integers @N.
* Write a script to find out the smallest positive number missing.
*/
int least_missing(int n[]){
std::sort (n, n + 4);
std::vector<int> numbers (n, n + 4);
@adamcrussell
adamcrussell / ch-1.cxx
Created September 27, 2020 14:02
Perl Weekly Challenge 079
#include <iostream>
int count_bits(int n){
int set_bits = 0;
for(int i = 1; i <= n; i++){
int x = i;
while(x > 0){
int b = x & 1;
set_bits += b;
x = x >> 1;
@adamcrussell
adamcrussell / ch-1.pl
Created September 20, 2020 03:47
Perl Weekly Challenge 078
use strict;
use warnings;
##
# You are given an array @A containing distinct integers.
# Write a script to find all leader elements in the array @A.
# Print (0) if none found.
##
use boolean;
sub is_leader{
my(@a) = @_;
@adamcrussell
adamcrussell / ch-1.pl
Last active September 13, 2020 19:49
Perl Weekly Challenge 077
use strict;
use warnings;
##
# You are given a positive integer $N.
# Write a script to find out all possible combination
# of Fibonacci Numbers required to get $N on addition.
# Repeated numbers are not allowed. Print 0 if none found.
##
sub nearest_fibonacci{
my($n) = @_;
@adamcrussell
adamcrussell / ch-1.p
Created September 6, 2020 21:52
Perl Weekly Challenge 076
primes([2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83
,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,
181,191,193,197,199,211,223,227,229,233,239,241,251,257,263,269,271,277,
281,283,293,307,311,313,317,331,337,347,349,353,359,367,373,379,383,389,
397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,
503,509,521,523,541,547,557,563,569,571,577,587,593,599,601,607,613,617,
619,631,641,643,647,653,659,661,673,677,683,691,701,709,719,727,733,739,
743,751,757,761,769,773,787,797,809,811,821,823,827,829,839,853,857,859,
863,877,881,883,887,907,911,919,929,937,941,947,953,967,971,977,983,991,
997,1009,1013,1019,1021,1031,1033,1039,1049,1051,1061,1063,1069,1087,
@adamcrussell
adamcrussell / ch-1.p
Last active August 30, 2020 06:06
Perl Weekly Challenge 075
member(X,[X|_]).
member(X,[_|T]) :- member(X,T).
coins([1,2,4]).
sum(Coins):-
sum([], Coins, 0).
sum(Coins, Coins, 6).
@adamcrussell
adamcrussell / ch-1.p
Last active May 17, 2020 15:26
Perl Weekly Challenge 060
number_column-label(X, L):-
number_column-label(X, "", L).
number_column-label(0, L, L).
number_column-label(X, C, L):-
(X > 26) ->
string_concat(C, "A", CAlpha),
number_column-label(X - 26, CAlpha, L);
M is rem(X, 26),
N is X - 26,
max_list([N, 0], X0),