#include <iostream>
using namespace std;
// f is just a simple user-defined function
int f(int n)
{
return 2*n-1;
}
// factorial computers the factorial of n
// equal to the product 1*2*3*...*n
int factorial(int n)
{
int product = 1;
for (int i=2; i<=n; i++)
product = product * i;
return product;
}
// is_prime returns 1 is n is a prime,
// otherwise it returns 0.
int is_prime(int n)
{
// anything up to 1 cannot be a prime
if (n<=1)
return 0;
// 2 is a prime
if (n==2)
return 1;
// try to divide by i=2 to n-1,
// if divisible, n is not a prime
for (int i=2; i<n; i++)
if (n%i==0)
return 0;
// if we got this far, the number is a prime
return 1;
}
int main()
{
int nmin = 1;
int nmax = 10;
int nstep = 1;
for (int n = nmin; n <= nmax; n = n + nstep)
{
cout << "n = " << n << endl;
cout << " f(" << n << ") = " << f(n) << endl;
cout << " factorial(" << n << ") = " << factorial(n) << endl;
cout << " is_prime(" << n << ") = " << is_prime(n) << endl;
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgogCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgovLyBmIGlzIGp1c3QgYSBzaW1wbGUgdXNlci1kZWZpbmVkIGZ1bmN0aW9uCgppbnQgZihpbnQgbikKewogIHJldHVybiAyKm4tMTsKfQoKLy8gZmFjdG9yaWFsIGNvbXB1dGVycyB0aGUgZmFjdG9yaWFsIG9mIG4KLy8gZXF1YWwgdG8gdGhlIHByb2R1Y3QgMSoyKjMqLi4uKm4KCmludCBmYWN0b3JpYWwoaW50IG4pCnsKICBpbnQgcHJvZHVjdCA9IDE7CgogIGZvciAoaW50IGk9MjsgaTw9bjsgaSsrKQogICAgcHJvZHVjdCA9IHByb2R1Y3QgKiBpOwoKICByZXR1cm4gcHJvZHVjdDsKfQogCi8vIGlzX3ByaW1lIHJldHVybnMgMSBpcyBuIGlzIGEgcHJpbWUsCi8vIG90aGVyd2lzZSBpdCByZXR1cm5zIDAuCgppbnQgaXNfcHJpbWUoaW50IG4pCnsKICAvLyBhbnl0aGluZyB1cCB0byAxIGNhbm5vdCBiZSBhIHByaW1lCiAKICBpZiAobjw9MSkKICAgIHJldHVybiAwOwoKICAvLyAyIGlzIGEgcHJpbWUKCiAgaWYgKG49PTIpCiAgICByZXR1cm4gMTsKIAogIC8vIHRyeSB0byBkaXZpZGUgYnkgaT0yIHRvIG4tMSwKICAvLyBpZiBkaXZpc2libGUsIG4gaXMgbm90IGEgcHJpbWUKCiAgZm9yIChpbnQgaT0yOyBpPG47IGkrKykKICAgIGlmIChuJWk9PTApIAogICAgICByZXR1cm4gMDsKCiAgLy8gaWYgd2UgZ290IHRoaXMgZmFyLCB0aGUgbnVtYmVyIGlzIGEgcHJpbWUKCiAgcmV0dXJuIDE7Cn0KCmludCBtYWluKCkKewogIGludCBubWluICA9IDE7CiAgaW50IG5tYXggID0gMTA7CiAgaW50IG5zdGVwID0gMTsKICAKICBmb3IgKGludCBuID0gbm1pbjsgbiA8PSBubWF4OyBuID0gbiArIG5zdGVwKQogIHsKICAgIGNvdXQgPDwgIm4gPSAiIDw8IG4gPDwgZW5kbDsKICAgIGNvdXQgPDwgIiAgIGYoIiA8PCBuIDw8ICIpID0gIiA8PCBmKG4pIDw8IGVuZGw7CiAgICBjb3V0IDw8ICIgICBmYWN0b3JpYWwoIiA8PCBuIDw8ICIpID0gIiA8PCBmYWN0b3JpYWwobikgPDwgZW5kbDsKICAgIGNvdXQgPDwgIiAgIGlzX3ByaW1lKCIgPDwgbiA8PCAiKSA9ICIgPDwgaXNfcHJpbWUobikgPDwgZW5kbDsKICB9CgogIHJldHVybiAwOwp9