Algorithm
Problem link- https://www.spoj.com/problems/SAMER08F/
SAMER08F - Feynman
Richard Phillips Feynman was a well known American physicist and a recipient of the Nobel Prize in Physics. He worked in theoretical physics and also pioneered the field of quantum computing. He visited South America for ten months, giving lectures and enjoying life in the tropics. He is also known for his books "Surely You're Joking, Mr. Feynman!" and "What Do You Care What Other People Think?", which include some of his adventures below the equator.
His life-long addiction was solving and making puzzles, locks, and cyphers. Recently, an old farmer in South America, who was a host to the young physicist in 1949, found some papers and notes that is believed to have belonged to Feynman. Among notes about mesons and electromagnetism, there was a napkin where he wrote a simple puzzle: "how many different squares are there in a grid of N ×N squares?".
In the same napkin there was a drawing which is reproduced below, showing that, for N=2, the answer is 5.
Input
The input contains several test cases. Each test case is composed of a single line, containing only one integer N, representing the number of squares in each side of the grid (1 ≤ N ≤ 100).
The end of input is indicated by a line containing only one zero.
Output
For each test case in the input, your program must print a single line, containing the number of different squares for the corresponding input.
Example
Input: 2 1 8 0 Output: 5 1 204
Code Examples
#1 Code Example with C++ Programming
Code -
C++ Programming
#include<bits/stdc++.h>
using namespace std;
#define fast ios_base::sync_with_stdio(0);cin.tie(0);
#define ll long long
#define endl "\n"
int main()
{
int n;
while(cin >> n)
{
if(n==0)
break;
int x=n*(n+1)*(2*n+1)/6;
cout << x << endl;
}
return 0;
}
Copy The Code &
Try With Live Editor
Input
1
8
0
Output
1
204
#2 Code Example with Java Programming
Code -
Java Programming
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();{
while(n!=0){
if(n!=1){
int t1=1;
int x=2;
int t=t1;
int i=1;
int total=0;
total+=n*n;
while(x<n){
t1+=2*i+1;
t+=t1;
x++;
i++;
}
total+=t;
System.out.println(total);
}else{
System.out.println(n);
}
n=sc.nextInt();
}
}
}
}
Copy The Code &
Try With Live Editor
Input
1
8
0
Output
1
204
Demonstration
SPOJ Solution-Feynman-Solution in C, C++, Java, Python