Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public static ulong Ratkaisu()
- {
- //Tiedetään se, että ainoat luvut joiden neliö päättyy nollaan ovat kymmenellä jaolliset luvut.
- //Voimme siis tarkastella luvun 10203040506070809 neliöjuuresta lähtien.
- ulong a = (ulong)Math.Sqrt(10203040506070809);
- do
- {
- //Luvut, joiden neliöt päättyvät yhdeksään, päättyvät joko kolmeen tai seitsemään.
- //Jos luku päättyy kolmeen, niin kasvatetaan lukua neljällä, jotta luvusta tulisi
- //seitsemällä päättyvä.
- if (a.ToString().ToList<char>().Last() == '3')
- {
- a = a + 4;
- }
- //Jos taas luku päättyy jo seitsemään, niin kasvatetaan lukua kuudella, jotta
- //luvusta tulisi kolmeen päättyvä.
- else if (a.ToString().ToList<char>().Last() == '7')
- {
- a = a + 6;
- }
- //Muissa tapauksissa, eli laskun aloitusvaiheessa kasvatetaan lukua yhdellä.
- else
- {
- a++;
- }
- } while (
- //Tätä toistetaan niin kauan, kunnes luvut 1, 2, 3, 4, 5, 6, 7, 8 ja 9 täsmäävät.
- //omilla paikoillaan.
- ((a * a).ToString().ToList<char>()[0] != '1') ||
- ((a * a).ToString().ToList<char>()[2] != '2') ||
- ((a * a).ToString().ToList<char>()[4] != '3') ||
- ((a * a).ToString().ToList<char>()[6] != '4') ||
- ((a * a).ToString().ToList<char>()[8] != '5') ||
- ((a * a).ToString().ToList<char>()[10] != '6') ||
- ((a * a).ToString().ToList<char>()[12] != '7') ||
- ((a * a).ToString().ToList<char>()[14] != '8') ||
- ((a * a).ToString().ToList<char>()[16] != '9')
- );
- //Palautetaan tutkittu luku kymmenellä kerrottuna, koska kuten aikaisemmin todettiin,
- //niin nollaan päättyvien lukujen neliö päättyy nollaan.
- return a * 10;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement