How to check if number can be made prime by deleting a single digit in C#

1 Answer

0 votes
using System;

internal class Program
{
	public static int remove_the_N_digit(int num, int N) {
		string str = Convert.ToString(num);

		str = str.Substring(0, N) + str.Substring(N + 1);

		return int.Parse(str);
	}

	internal static bool isPrime(int n) {
		if (n < 2 || (n % 2 == 0 && n != 2)) {
			return false;
		}

		int count = (int)Math.Floor(Math.Sqrt(n));
		for (int i = 3; i <= count; i += 2) {
			if (n % i == 0) {
				return false;
			}
		}
		
		return true;
	}

	public static void Main(string[] args)
	{
		int n = 78919;
		int total_digits = (int)Math.Log10(n) + 1;

		int i = 0;
		while (i < total_digits) {
			int tmp = remove_the_N_digit(n, i);
			if (isPrime(tmp)) {
				Console.Write("yes number = " + tmp);
				break;
			}
			i++;
		}
	}
}





/*
run:
      
yes number = 7919
   
*/

 



answered Jan 18, 2024 by avibootz

Related questions

...