C#C
C#3y ago
katze

❔ Making collatz conjecture code more efficient

hello, i recently tried to make a C# program that runs the collatz conjecture on random numbers and saves the conjecture to a .txt file; however: its really inefficient and i was wondering if anyone had any suggestions on how to improve it?

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
using System.Text;
using System.Linq;

namespace COLLATZCONJECTURE
{
    class Program
    {
        static void Main(string[] args)
        {
            Random randgen = new Random();
            UnicodeEncoding encoder = new UnicodeEncoding();

            Console.ReadLine();

        start:

            var values = new List<string>();

            long selectedNum = Convert.ToInt64(randgen.Next());
            long x = selectedNum;

            string localPath = (@"D:\COLLATZ\" + Convert.ToString(x) + ".txt");

            if (File.Exists(localPath)) {
                goto start;
            }

            Console.WriteLine("Input: {0}", selectedNum);
                
                while (x > 0 && x != 1)
                {
                    if (x == 1)
                    {
                    Console.WriteLine("END --- {0}", Convert.ToString(selectedNum));
                    break;
                    }
                    if (x % 2 == 0)
                    {
                        x = x / 2;
                        Console.WriteLine(Convert.ToString(x));
                        
                    }
                    else if (x % 2 != 0)
                    {
                    x = (x * 3) + 1;
                        Console.WriteLine(Convert.ToString(x));
                   
                }
                values.Add(Convert.ToString(x));
            }

            values.Add("END -- INPUT: " + Convert.ToString(selectedNum));

            File.WriteAllLines(localPath,values);

           // Console.WriteLine(values);
          //  Console.ReadKey();

            goto start;
        }
    }
}
Was this page helpful?