Alcuin sequence is the expansion of
This series has significant importance as
- Alcuin Sequence a(n) is the number of triangles with integer sides and the perimeter of the triangle is n.
- Alcuin Sequence a(n) is the number of triangles with distinct integer sides and the perimeter of the triangle is n+6.
The Alcuin sequence is as follows:
0, 0, 1, 0, 1, 1, 2, 1, 3, 2
Examples:
Input: n = 10 Output: 0, 0, 1, 0, 1, 1, 2, 1, 3, 2 Input: n = 15 Output:0, 0, 1, 0, 1, 1, 2, 1, 3, 2, 4, 3, 5, 4, 7,
Approach:
- Find the nth term of the Alcuin sequence using
a(n) = round(n^2/12) – floor(n/4)*floor((n+2)/4) - Find out the ith term and display it.
Below is the implementation of the above approach:
C++
#include <bits/stdc++.h> using namespace std;
// find the nth term of // Alcuin's sequence int Alcuin( int n)
{ double _n = n, ans;
ans = round((_n * _n) / 12)
- floor (_n / 4)
* floor ((_n + 2) / 4);
// return the ans
return ans;
} // print first n terms of Alcuin number void solve( int n)
{ int i = 0;
for ( int i = 1; i <= n; i++) {
// display the number
cout << Alcuin(i) << ", " ;
}
} // Driver code int main()
{ int n = 15;
solve(n);
return 0;
} |
Java
// Java program for Alcuin's Sequence import java.util.*;
class GFG
{ // find the nth term of // Alcuin's sequence static int Alcuin( int n)
{ double _n = n, ans;
ans = Math.round((_n * _n) / 12 ) -
Math.floor(_n / 4 ) *
Math.floor((_n + 2 ) / 4 );
// return the ans
return ( int ) ans;
} // print first n terms of Alcuin number static void solve( int n)
{ int i = 0 ;
for (i = 1 ; i <= n; i++)
{
// display the number
System.out.print(Alcuin(i) + ", " );
}
} // Driver code public static void main(String[] args)
{ int n = 15 ;
solve(n);
} } // This code is contributed by Princi Singh |
Python3
# Python3 program for Alcuin’s Sequence from math import ceil, floor
# find the nth term of # Alcuin's sequence def Alcuin(n):
_n = n
ans = 0
ans = ( round ((_n * _n) / 12 ) -
floor(_n / 4 ) *
floor((_n + 2 ) / 4 ))
# return the ans
return ans
# print first n terms of Alcuin number def solve(n):
for i in range ( 1 , n + 1 ):
# display the number
print (Alcuin(i), end = ", " )
# Driver code n = 15
solve(n) # This code is contributed by Mohit Kumar |
C#
// C# program for Alcuin's Sequence using System;
class GFG
{ // find the nth term of
// Alcuin's sequence
static int Alcuin( int n)
{
double _n = n, ans;
ans = Math.Round((_n * _n) / 12) -
Math.Floor(_n / 4) *
Math.Floor((_n + 2) / 4);
// return the ans
return ( int ) ans;
}
// print first n terms of Alcuin number
static void solve( int n)
{
int i = 0;
for (i = 1; i <= n; i++)
{
// display the number
Console.Write(Alcuin(i) + ", " );
}
}
// Driver code
public static void Main(String[] args)
{
int n = 15;
solve(n);
}
} // This code is contributed by Rajput-Ji |
Javascript
<script> // find the nth term of // Alcuin's sequence function Alcuin(n)
{ let _n = n, ans;
ans = Math.round((_n * _n) / 12)
- Math.floor(_n / 4)
* Math.floor((_n + 2) / 4);
// return the ans
return ans;
} // print first n terms of Alcuin number function solve(n)
{ let i = 0;
for (let i = 1; i <= n; i++) {
// display the number
document.write(Alcuin(i) + ", " );
}
} // Driver code let n = 15;
solve(n);
</script> |
Output:
0, 0, 1, 0, 1, 1, 2, 1, 3, 2, 4, 3, 5, 4, 7,
Time Complexity: O(n), since the loop runs once from 1 to n.
Auxiliary Space: O(1), since extra space has not been taken.
Reference: https://en.wikipedia.org/wiki/Alcuin%27s_sequence