[Question]
  [
Fibonacci + FizzBuzz = Fibo Nacci!
---
# Your challenge is to create a Fibo Nacci program!
* A Fibo Nacci program outputs the first **100** Fibonacci numbers (starting from 1).
* If the Fibonacci number is divisible by both 2 **and** 3 (i.e. it is divisible by 6), then output FiboNacci instead of the number.
* Otherwise, if the Fibonacci number is divisible by 2, then output Fibo instead of the number.
* Otherwise, if the Fibonacci number is divisible by 3, then output Nacci instead of the number.
# Rules
* The program should take no input.
* The program should output a new line (`\n`) after every entry.
* The program should **not** print anything to STDERR.
* The program **must** output the first **100** Fibo Nacci entries (starting from 1).
* Standard loopholes are not allowed (by default).
* This is [code-golf](/questions/tagged/code-golf "show questions tagged 'code-golf'") so shortest code in bytes wins!
Here is the expected output:
```
1
1
Fibo
Nacci
5
Fibo
13
Nacci
Fibo
55
89
FiboNacci
233
377
Fibo
Nacci
1597
Fibo
4181
Nacci
Fibo
17711
28657
FiboNacci
75025
121393
Fibo
Nacci
514229
Fibo
1346269
Nacci
Fibo
5702887
9227465
FiboNacci
24157817
39088169
Fibo
Nacci
165580141
Fibo
433494437
Nacci
Fibo
1836311903
2971215073
FiboNacci
7778742049
12586269025
Fibo
Nacci
53316291173
Fibo
139583862445
Nacci
Fibo
591286729879
956722026041
FiboNacci
2504730781961
4052739537881
Fibo
Nacci
17167680177565
Fibo
44945570212853
Nacci
Fibo
190392490709135
308061521170129
FiboNacci
806515533049393
1304969544928657
Fibo
Nacci
5527939700884757
Fibo
14472334024676221
Nacci
Fibo
61305790721611591
99194853094755497
FiboNacci
259695496911122585
420196140727489673
Fibo
Nacci
1779979416004714189
Fibo
4660046610375530309
Nacci
Fibo
19740274219868223167
31940434634990099905
FiboNacci
83621143489848422977
135301852344706746049
Fibo
Nacci
```
## The Catalogue
The ~~Snack~~ Stack Snippet at the bottom of this post generates the catalogue from the answers a) as a list of shortest solution per language and b) as an overall leaderboard.
To make sure that your answer shows up, please start your answer with a headline, using the following Markdown template:
```
## Language Name, N bytes
```
where `N` is the size of your submission. If you improve your score, you *can* keep old scores in the headline, by striking them through. For instance:
```
## Ruby, <s>104</s> <s>101</s> 96 bytes
```
If there you want to include multiple numbers in your header (e.g. because your score is the sum of two files or you want to list interpreter flag penalties separately), make sure that the actual score is the *last* number in the header:
```
## Perl, 43 + 2 (-p flag) = 45 bytes
```
You can also make the language name a link which will then show up in the snippet:
```
## [><>](http://esolangs.org/wiki/Fish), 121 bytes
```
```
/* Configuration */
var QUESTION_ID = 63442; // Obtain this from the url
// It will be like http://XYZ.stackexchange.com/questions/QUESTION_ID/... on any question page
var ANSWER_FILTER = "!t)IWYnsLAZle2tQ3KqrVveCRJfxcRLe";
var COMMENT_FILTER = "!)Q2B_A2kjfAiU78X(md6BoYk";
var OVERRIDE_USER = 41805; // This should be the user ID of the challenge author.
/* App */
var answers = [], answers_hash, answer_ids, answer_page = 1, more_answers = true, comment_page;
function answersUrl(index) {
  return "http://api.stackexchange.com/2.2/questions/" +  QUESTION_ID + "/answers?page=" + index + "&pagesize=100&order=desc&sort=creation&site=codegolf&filter=" + ANSWER_FILTER;
}
function commentUrl(index, answers) {
  return "http://api.stackexchange.com/2.2/answers/" + answers.join(';') + "/comments?page=" + index + "&pagesize=100&order=desc&sort=creation&site=codegolf&filter=" + COMMENT_FILTER;
}
function getAnswers() {
  jQuery.ajax({
    url: answersUrl(answer_page++),
    method: "get",
    dataType: "jsonp",
    crossDomain: true,
    success: function (data) {
      answers.push.apply(answers, data.items);
      answers_hash = [];
      answer_ids = [];
      data.items.forEach(function(a) {
        a.comments = [];
        var id = +a.share_link.match(/\d+/);
        answer_ids.push(id);
        answers_hash[id] = a;
      });
      if (!data.has_more) more_answers = false;
      comment_page = 1;
      getComments();
    }
  });
}
function getComments() {
  jQuery.ajax({
    url: commentUrl(comment_page++, answer_ids),
    method: "get",
    dataType: "jsonp",
    crossDomain: true,
    success: function (data) {
      data.items.forEach(function(c) {
        if (c.owner.user_id === OVERRIDE_USER)
          answers_hash[c.post_id].comments.push(c);
      });
      if (data.has_more) getComments();
      else if (more_answers) getAnswers();
      else process();
    }
  });  
}
getAnswers();
var SCORE_REG = /<h\d>\s*([^\n,<]*(?:<(?:[^\n>]*>[^\n<]*<\/[^\n>]*>)[^\n,<]*)*),.*?(\d+)(?=[^\n\d<>]*(?:<(?:s>[^\n<>]*<\/s>|[^\n<>]+>)[^\n\d<>]*)*<\/h\d>)/;
var OVERRIDE_REG = /^Override\s*header:\s*/i;
function getAuthorName(a) {
  return a.owner.display_name;
}
function process() {
  var valid = [];
  
  answers.forEach(function(a) {
    var body = a.body;
    a.comments.forEach(function(c) {
      if(OVERRIDE_REG.test(c.body))
        body = '<h1>' + c.body.replace(OVERRIDE_REG, '') + '</h1>';
    });
    
    var match = body.match(SCORE_REG);
    if (match)
      valid.push({
        user: getAuthorName(a),
        size: +match[2],
        language: match[1],
        link: a.share_link,
      });
    else console.log(body);
  });
  
  valid.sort(function (a, b) {
    var aB = a.size,
        bB = b.size;
    return aB - bB
  });
  var languages = {};
  var place = 1;
  var lastSize = null;
  var lastPlace = 1;
  valid.forEach(function (a) {
    if (a.size != lastSize)
      lastPlace = place;
    lastSize = a.size;
    ++place;
    
    var answer = jQuery("#answer-template").html();
    answer = answer.replace("{{PLACE}}", lastPlace + ".")
                   .replace("{{NAME}}", a.user)
                   .replace("{{LANGUAGE}}", a.language)
                   .replace("{{SIZE}}", a.size)
                   .replace("{{LINK}}", a.link);
    answer = jQuery(answer);
    jQuery("#answers").append(answer);
    var lang = a.language;
    lang = jQuery('<a>'+lang+'</a>').text();
    
    languages[lang] = languages[lang] || {lang: a.language, lang_raw: lang, user: a.user, size: a.size, link: a.link};
  });
  var langs = [];
  for (var lang in languages)
    if (languages.hasOwnProperty(lang))
      langs.push(languages[lang]);
  langs.sort(function (a, b) {
    if (a.lang_raw.toLowerCase() > b.lang_raw.toLowerCase()) return 1;
    if (a.lang_raw.toLowerCase() < b.lang_raw.toLowerCase()) return -1;
    return 0;
  });
  for (var i = 0; i < langs.length; ++i)
  {
    var language = jQuery("#language-template").html();
    var lang = langs[i];
    language = language.replace("{{LANGUAGE}}", lang.lang)
                       .replace("{{NAME}}", lang.user)
                       .replace("{{SIZE}}", lang.size)
                       .replace("{{LINK}}", lang.link);
    language = jQuery(language);
    jQuery("#languages").append(language);
  }
}
```
```
body { text-align: left !important}
#answer-list {
  padding: 10px;
  width: 290px;
  float: left;
}
#language-list {
  padding: 10px;
  width: 290px;
  float: left;
}
table thead {
  font-weight: bold;
}
table td {
  padding: 5px;
}
```
```
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<link rel="stylesheet" type="text/css" href="//cdn.sstatic.net/codegolf/all.css?v=83c949450c8b">
<div id="language-list">
  <h2>Shortest Solution by Language</h2>
  <table class="language-list">
    <thead>
      <tr><td>Language</td><td>User</td><td>Score</td></tr>
    </thead>
    <tbody id="languages">
    </tbody>
  </table>
</div>
<div id="answer-list">
  <h2>Leaderboard</h2>
  <table class="answer-list">
    <thead>
      <tr><td></td><td>Author</td><td>Language</td><td>Size</td></tr>
    </thead>
    <tbody id="answers">
    </tbody>
  </table>
</div>
<table style="display: none">
  <tbody id="answer-template">
    <tr><td>{{PLACE}}</td><td>{{NAME}}</td><td>{{LANGUAGE}}</td><td>{{SIZE}}</td><td><a href="{{LINK}}">Link</a></td></tr>
  </tbody>
</table>
<table style="display: none">
  <tbody id="language-template">
    <tr><td>{{LANGUAGE}}</td><td>{{NAME}}</td><td>{{SIZE}}</td><td><a href="{{LINK}}">Link</a></td></tr>
  </tbody>
</table>
```
  
[Answer]
## Python 2, 62 bytes
```
a=b=1;exec"print~a%2*'Fibo'+~a%3/2*'Nacci'or a;a,b=b,a+b;"*100
```
Not much different from the standard FizzBuzz, really.
[Answer]
# C++11 metaprogramming, 348 bytes
```
#include<iostream>
#define D static const unsigned long long v=
template<int L>struct F{D F<L-1>::v+F<L-2>::v;};template<>struct F<2>{D 1;};template<>struct F<1>{D 1;};template<int Z>struct S:S<Z-1>{S(){auto&s=std::cout;auto l=F<Z>::v;s<<(l%2?"":"Fibo")<<(l%3?"":"Nacci");(l%2&&l%3?s<<l:s)<<"\n";}};template<>struct S<0>{S(){}};int main(){S<100>s;}
```
Because, why not. It compiles with `warning C4307: '+': integral constant overflow`, runs fine, but 93+ th Fibonacci numbers are not shown correctly (due to overflow), so this is invalid entry (but I could not win it with that much of bytes though)
Ungolfed
```
#include <iostream>
#define D static const unsigned long long v = 
template<int L>struct F { D F<L - 1>::v + F<L - 2>::v; };
template<>struct F<2> { D 1; };
template<>struct F<1> { D 1; };
template<int Z>struct S : S<Z - 1>
{
    S()
    {
        auto&s = std::cout;
        auto l = F<Z>::v;
        s << (l % 2 ? "" : "Fibo")
          << (l % 3 ? "" : "Nacci");
        (l % 2 && l % 3 ? s << l : s) << "\n";
    }
};
template<>struct S<0>
{
    S() { }
};
int main()
{
    S<100>s;
}
```
[Answer]
# Pyth, 37 bytes
I loop through the Fibonacci numbers instead of generating them beforehand, since it's really short to do.
```
K1V100|+*"Fibo"!%=+Z~KZ2*"Nacci"!%Z3Z
```
[Try it online.](http://pyth.herokuapp.com/?code=K1V100%7C%2B%2a%22Fibo%22%21%25%3D%2BZ%7EKZ2%2a%22Nacci%22%21%25Z3Z&debug=0)
[Answer]
## Oracle SQL, 212 bytes
Not a golfing language but I had to try...
Concatenating all the rows with `\n`:
```
WITH F(R,P,C)AS(SELECT 1,0,1 FROM DUAL UNION ALL SELECT R+1,C,P+C FROM F WHERE R<100)SELECT LISTAGG(NVL(DECODE(MOD(C,2),0,'Fibo')||DECODE(MOD(C,3),0,'Nacci'),''||C),CHR(13))WITHIN GROUP(ORDER BY R)||CHR(13)FROM F
```
[SQLFIDDLE](http://sqlfiddle.com/#!4/9eecb7d/10484)
Or with one entry from the sequence per row (162 bytes):
```
WITH F(R,P,C)AS(SELECT 1,0,1 FROM DUAL UNION ALL SELECT R+1,C,P+C FROM F WHERE R<100)SELECT NVL(DECODE(MOD(C,2),0,'Fibo')||DECODE(MOD(C,3),0,'Nacci'),''||C)FROM F
```
[Answer]
## C#, ~~175 171 152~~ 145 bytes
```
class c{static void Main(){for(dynamic a=1m,b=a,c=0;c++<100;b=a+(a=b))System.Console.WriteLine(a%6>0?a%2>0?a%3>0?a:"Nacci":"Fibo":"FiboNacci");}}
```
Uncompressed:
```
class c {
    static void Main()
    {
        for (dynamic a = 1m, b = a, c = 0; c++ < 100; b = a + (a = b))
            System.Console.WriteLine(a%6>0?a%2>0?a%3>0?a:"Nacci":"Fibo":"FiboNacci");
    }
}
```
[Answer]
# [ShapeScript](https://github.com/DennisMitchell/ShapeScript), 83 bytes
```
11'1?1?+'77*2**!""'"%r
"@+@0?2%1<"Fibo"*1?3%1<"Nacci"*+0?_0>"@"*!#%'52*0?**!"'"$""~
```
[Try it online!](http://shapescript.tryitonline.net/#code=MTEnMT8xPysnNzcqMioqISIiJyIlcgoiQCtAMD8yJTE8IkZpYm8iKjE_MyUxPCJOYWNjaSIqKzA_XzA-IkAiKiEjJSc1MiowPyoqISInIiQiIn4=&input=)
[Answer]
# Java, ~~407~~ ~~398~~ ~~351~~ 308 bytes
Golfed it with help from @Geobits and @SamYonnou
Spread the word: `Verbose == Java`
```
import java.math.*;class A{public static void main(String[]w){BigInteger a=BigInteger.ZERO,b=a.flipBit(0),c,z=a,t=a.flipBit(1),h=t.flipBit(0),s=t.flipBit(2);for(int i=0;i<100;i++){System.out.println(b.mod(s).equals(z)?"FiboNacci":b.mod(t).equals(z)?"Fibo":b.mod(h).equals(z)?"Nacci":b);c=a;a=b;b=c.add(b);}}}
```
Ungolfed version:
```
import java.math.*;
class A
{
  public static void main(String[]w)
  {
    BigInteger a=BigInteger.ZERO,b=a.flipBit(0),c,z=a,t=a.flipBit(1),h=t.flipBit(0),s=t.flipBit‌​(2);
    for(int i=1;i<=100;i++) {
      System.out.println(b.mod(s).equals(z)?"FiboNacci":b.mod(t).equals‌​(z)?"Fibo":b.mod(h).equals(z)?"Nacci":b);                
      c=a;a=b;b=c.add(b);
    }
  }
}
```
[Answer]
## Mathematica, 80 bytes
```
a=b_/;#∣b&;Print/@(Fibonacci@Range@100/.{a@6->FiboNacci,a@2->Fibo,a@3->Nacci})
```
Adaptation of my older FizzBuzz solution.
[Answer]
# Ruby, ~~71~~ 66 bytes
```
a=b=1;100.times{puts [b,f='Fibo',n='Nacci',f,b,f+n][~b%6];a=b+b=a}
```
### ungolfed:
```
a = b = 1 #starting values
100.times{
  # create an array, and selects a value depending on the current number
  puts([b, 'Fibo', 'Nacci', 'Fibo', b, 'FiboNacci'][~b%6])
  a=b+b=a # magic
}
```
[Answer]
# [><>](http://esolangs.org/wiki/Fish), 116 bytes
```
01:n1&61>.
ao:@+:v
vv?%2:<
">:3%?vv^16<
o>:3%?!v~v<&
bov"ci"< 6 ;
io"   n  6~?
Focv1&<   o=
"o">+:aa*!o^
>^>"aN"ooo^
```
[Try it online!](https://tio.run/##HccxCgIxEAXQfk4xO7ApXBBHIcUYEytLjxCIC2Ka/YUw5V49gq977/79jHFS2zREzUdqsPtiTu5lPlsiyXaZi3vVmAj/TL57CvSCy9olceQrdQgzb8xxL/TA6hpSVMaNBJIXa@0woVKuWdpTANQxfg)
[Answer]
## C#, ~~498~~ ~~392~~ 320 bytes
I just really wanted to do this with linq, too bad I had to write my own sum function for BigInteger that really killed it :-(
```
using System.Linq;using System.Numerics;using System.Collections.Generic;static class a{static void Main(){var f=new List<BigInteger>(){1,1};while(f.Count<100)f.Add(f.Skip(f.Count-2).Take(2).Aggregate((a,b)=>b+a));f.ForEach(x=>{System.Console.WriteLine(x%6==0?"FiboNacci":x%2==0?"Fibo":x%3==0?"Nacci":x.ToString());});}}
```
Ungolfed:
```
using System.Linq;
using System.Numerics;
using System.Collections.Generic;
static class a
{
    static void Main()
    {
        var f=new List<BigInteger>(){1,1};
        while(f.Count<100)
            f.Add(f.Skip(f.Count-2).Take(2).Aggregate((a,b)=>b+a));
        f.ForEach(x=>
        {
            System.Console.WriteLine(x%6==0?"FiboNacci":x%2==0?"Fibo":x%3==0?"Nacci":x.ToString());
        });
    }
}
```
Edit: Down to 320 bytes thanks to LegionMammal978 for the aggregate suggestion and thanks to olegz's C# answer for the x%6 shorthand for X%2 && x%3 as well as the use of ternary operators in a single WriteLine statement.
[Answer]
# Pyth, 39
```
Vtu+Gs>2G99U2|+*!%N2"Fibo"*!%N3"Nacci"N
```
Very similar to the standard fizzbuzz solution, just with a generator for the Fibonacci numbers.
[Try it here](http://pyth.herokuapp.com/?code=Vtu%2BGs%3E2G99U2%7C%2B%2A%21%25N2%22Fibo%22%2A%21%25N3%22Nacci%22N&debug=0)
[Answer]
# Python 2, 171 121 bytes
"Brute force approach."
```
a=[1,1]
print 1
for _ in"q"*99:print[a[1],"Fibo","Nacci","FiboNacci"][a.append(a.pop(0)+a[0])or(1-a[0]%2)+(a[0]%3<1)*2]
```
[Answer]
## Python 2, 100 bytes
```
x=[1,1]
exec"x+=[x[-1]+x[-2]];"*98
print"\n".join(["Fibo"*(i%2==0)+"Nacci"*(i%3==0)or`i`for i in x])
```
For the large numbers, adds a `L` to the end showing it's a long number.
If that's a problem, here is a 104 byte solution
```
x=[1,1]
exec"x+=[x[-1]+x[-2]];"*98
print"\n".join(["Fibo"*(i%2==0)+"Nacci"*(i%3==0)or str(i)for i in x])
```
[Answer]
## Javascript, ~~93 90~~ 86 Bytes
```
for(a=0,b=1,i=100;i--;a=[b,b=a+b][0])console.log((b%2?'':'Fibo')+(b%3?'':'Nacci')||b)
```
[Answer]
# Javascript(ES6), ~~137~~ 134 bytes
```
g=x=>(a=[1,1],f=(x)=>(a[x]=y=a[x-1]+a[x-2],(y%2&&y%3?y:(!(y%2)?'Fibo':'')+(!(y%3)?'Nacci':''))+'\n'+((++x<99)?f(x):'')),'1\n1\n'+f(2))
```
Recursive function that calculates fibonnacci, put it in an array then output Fibo,Nacci or the number and call itself to calculate next until 100.
It breaks at 73 because of javascript Number precision. Only way to get around that would be to add my own bit calculation.
[Answer]
## dc, ~~100~~ ~~89~~ 79 bytes
```
[sG[]]sx[dn]s01df[sbdlb+lbrdd2%d[Fibo]r0!=xnr3%d[Nacci]r0!=xn*0!=0APzZ3>o]dsox
```
Inspired by <http://c2.com/cgi/wiki?DeeCee>
[Answer]
## Wolfram Language, 84 bytes
Kind of cheating of course, because of the built in `Fibonacci`.
```
t=Fibonacci@Range@100;g=(t[[#;;;;#]]=#2)&;g[3,Fibo]g[4,Nacci]g[12,FiboNacci]Print/@t
```
Example command to run the script
```
/Applications/Mathematica.app/Contents/MacOS/WolframKernel -script ~/Desktop/fibo.wl
```
[Answer]
# Perl, 74 bytes
```
map{print+(Fibo)[$_%2].(Nacci)[$_%3]||$_ for$a+=$b||1,$b+=$a}1..50
```
Requires the following command line option: `-lMbigint`, counted as 8.
---
**Sample Usage**
```
$ perl -lMbigint fibo-nacci.pl
```
---
**Perl, 79 bytes**
```
use bigint;map{print+(Fibo)[$_%2].(Nacci)[$_%3]||$_,$/for$a+=$b||1,$b+=$a}1..50
```
Same as above, without requiring any command line options.
[Answer]
# GolfScript, 47 bytes
```
100,{1.@{.@+}*;..2%!'Fibo'*\3%!'Nacci'*+\or}%n*
```
---
**Explanation**
```
100,            # push 0..99
{               # map
  1.@           # push 1 twice, rotate counting var to the top
  {             # apply that many times
    .@+         # copy the top, rotate and add
                # if the stack is [a b], this produces: [a b b] -> [b b a] -> [b b+a]
  }*
  ;..           # discard the top, duplicate twice
  2%!'Fibo'*\   # divisible by 2 ? 'Fibo' : ''
  3%!'Nacci'*   # divisible by 3 ? 'Nacci' : ''
  +\or          # concatenate, if empty use the numeric value instead
}%
n*              # join all with a newline
```
[Answer]
# PARI/GP, ~~76~~ 73 bytes
*Saved three bytes courtesy of [Mitch Schwartz](https://codegolf.stackexchange.com/q/63442/63859?noredirect=1#comment154061_63859).*
```
for(n=b=!a=1,99,b=a+a=b;print(if(b%2,"",Fibo)if(b%3,if(b%2,b,""),Nacci)))
```
---
**Sample Usage**
```
$ gp -qf < fibo-nacci.gp
```
[Answer]
# ><>, ~~128~~ 119 bytes
```
111&v       >:3%0=?v>  v
?;ao>:2%0=?v :3%0=?v :n>:}+&:1+&aa*=
            ^oooo < ^ooooo <
           >"obiF"^>"iccaN"^
```
I ~~shamelessly stole~~ borrowed an existing program FizzBuzz program and modified it to work for the Fibo Nacci sequence. ~~It outputs numbers forever.~~ Now it is fixed, i.e. it only outputs 100 numbers. Try it [here](http://www.fishlanguage.com/playground/BdK2LsY2pw6aHM2GP).
[Answer]
# [05AB1E](https://github.com/Adriandmen/05AB1E/wiki/Commands), 29 [bytes](https://github.com/Adriandmen/05AB1E/wiki/Codepage)
```
тENÅfDÑ23SÃvá.•iÑ+FÌ;•™#yèJ},
```
Inspired by [*@Grimmy*'s bottom answer of the *1, 2, Fizz, 4, Buzz* challenge](https://codegolf.stackexchange.com/a/186380/52210) (doesn't work in the legacy version with `S` removed, because there is a bug in the compressed string `.•iÑ+FÌ;•`; the compiler probably thinks there is an open if/loop block due to the `i`/`F`..).
[Try it online](https://tio.run/##yy9OTMpM/f//YpOr3@HWNJfDE42Mgw83lx1eqPeoYVHm4Ynabod7rIHMRy2LlCsPr/Cq1fn/HwA).
**Explanation:**
```
тE                # Loop `N` in the range [1,100]:
  NÅf             #  Get the N'th Fibonacci number
     D            #  Duplicate it
      Ñ           #  Pop this copy, and push a list of its divisors
       23SÃ       #  Only keep the divisors [2,3]
 v                #  Inner loop over those remaining divisors (or not if none are left):
  á               #   Only leave the letters of the current top of the stack
                  #   (to get rid of the Fibonacci number that was still on the stack)
   .•iÑ+FÌ;•      #   Push compressed string "fibo nacci"
            ™     #   Titlecase each: "Fibo Nacci"
             #    #   Split it on spaces: ["Fibo","Nacci"]
              yè  #   Index the current divisor `y` into it (0-based and with wraparound,
                  #   so 2 will index into "Fibo" and 3 into "Nacci")
                J #   Join everything on the stack together
 },               #  After the inner loop: pop and print the top with trailing newline
```
[See this 05AB1E tip of mine (section *How to compress strings not part of the dictionary?*)](https://codegolf.stackexchange.com/a/166851/52210) to understand why `.•iÑ+FÌ;•` is `"fibo nacci"`.
[Answer]
# [Vyxal](https://github.com/Vyxal/Vyxal) `j`, 21 bytes
```
ÞF₁Ẏƛ₍₂₃«-∇j€₌p«⌈ǐ*∑∴
```
[Try it Online!](https://vyxal.pythonanywhere.com/#WyJqIiwiIiwiw55G4oKB4bqOxpvigo3igoLigoPCqy3iiIdq4oKs4oKMcMKr4oyIx5Aq4oiR4oi0IiwiIiwiIl0=)
Basically the same as the standard 11 byte FizzBuzz with a few changes
## Explained
```
ÞF₁Ẏƛ₍₂₃«-∇j€₌p«⌈ǐ*∑∴
ÞF₁Ẏ                  # The first 100 fibonacci numbers
    ƛ                 # to each item n:
     ₍₂₃              #   push a list [n % 2 == 0, n % 3 == 0]
        «-∇j€₌p«      #   push the string "fibo nacci"
                ⌈ǐ    #   split on spaces and titlecase each
                  *∑  #   vectorised string multiply and sum - this is like writing way of writing ("Fibo" * (n % 2 == 0) + "Naci" * (n % 3 == 0))
                    ∴ #   choose the greatest of n and that string. A number will always be greater than an empty string, and a non-empty string will always be greater than a number
                      # Just like the standard fizzbuzz, the `j` flag joins on newlines
```
[Answer]
# Pyth, 51 bytes
```
V.Wn100lHaZ+@Z_1@Z_2[1 1)|+*"Fibo"}2JPN*"Nacci"}3JN
```
Generates the Fibonacci sequence then decides what to print.
```
                    [1 1)                           - H = [1,1]
  Wn100lH                                           - While len(H)!=100 
         aZ+@Z_1@Z_2                                - H.append(H[-1]+H[-2])
V.                                                  - For N in H:
                                    JPN             - Set J to the prime factorization of H
                           *"Fibo"}2J               - If there is a 2 in the factorization, add "Fibo" to a string
                                       *"Nacci"}3J  - If there is a 3 in the factorization, add "Nacci" to a string
                          +                         - Join them together
                         |                        N - If the string isn't empty (If it isn't divisible by 2 or 3), print N
                                                    - Else print the string
```
To test, try this (only does the first 20 numbers)
```
V.Wn20lHaZ+@Z_1@Z_2[1 1)|+*"Fibo"}2JPN*"Nacci"}3JN
```
[Answer]
# Clojure, 127 bytes
```
(def f(lazy-cat[1 1](map +' f(rest f))))(doseq[x(take 100 f)](println(str(if(even? x)'Fibo)({0'Nacci}(mod x 3)(if(odd? x)x)))))
```
Ungolfed:
```
(def fib (lazy-cat [1 1] (map +' fib (rest fib))))
(doseq [x (take 100 fib)]
  (println (str (if (even? x) 'Fibo)
                ({0 'Nacci}
                 (mod x 3)
                 (if (odd? x) x)))))
```
Some tricks used:
* That pretty little `def` that gives the Fibonacci sequence itself is [stolen shamelessly from Konrad Garus](http://squirrel.pl/blog/2010/07/26/corecursion-in-clojure/).
* `str` can take symbols as input. Crazy, right?
* Maps and default values are the shortest way to write `if` in some cases.
[Answer]
# CJam, 44 bytes
```
XX{_2$+}98*]{_B4bf%:!"Fibo Nacci"S/.*s\e|N}/
```
Try it online in the [CJam interpreter](http://cjam.aditsu.net/#code=XX%7B_2%24%2B%7D98*%5D%7B_B4bf%25%3A!%22Fibo%20Nacci%22S%2F.*s%5Ce%7CN%7D%2F).
[Answer]
## QBasic, 144 141 bytes
Not particularly small, but it beats C++ and C#
```
r=1:FOR i=1 TO 046:a$="":q=p+r
IF q MOD 2=0 THEN a$="Fibo"
IF q MOD 3=0 THEN a$=a$+"Nacci"
IF a$="" THEN a$=STR$(q)
PRINT a$:r=p:p=q:NEXT
```
No declarations, used the `:` wherever possible because it's 1 byte cheaper than `CRLF`. Prefixed a 0 to the loop counter: Basic will overflow on the 47th Fibonacci character, so compensated for the extra byte that should be there.
EDIT: Neil saved me 3 bytes: 141 bytes.
[Answer]
## F#, ~~202 163~~ 149 bytes
```
Seq.unfold(fun(a,b)->printfn"%s"(a%6m|>function|0m->"FiboNacci"|2m|4m->"Fibo"|3m->"Nacci"|_->string a);Some(1,(b,a+b)))(1m,1m)|>Seq.take 100|>Seq.sum
```
This is an FSX (F# script) file
[Answer]
# PHP, 75 bytes
```
<?for(;4e20>$b=bcadd($a,$a=$b)?:1;)echo[Fibo][++$i%3].[Nacci][$i%4]?:$b,~õ;
```
Surpisingly competitive. Requres PHP v5.5 or higher. I assume default settings, as they are without an .ini (you may disable your local .ini with the `-n` option).
---
**Sample Usage**
```
$ php -n fibo-nacci.php
```
]