암스트롱 수는 큐브의 자릿수 합계와 동일한 숫자입니다. N개의 숫자로 구성되며 각 숫자의 N제곱을 합한 것과 같습니다. 예를 들어 0, 1, 153, 370, 371 및 407, 1634, 8208, 9474를 포함한 숫자는 암스트롱 숫자로 간주됩니다. 이번 주제에서는 C#의 Armstrong Number에 대해 알아보겠습니다.
암호화 및 복호화 과정에서 암스트롱의 번호가 비밀키로 사용됩니다. 두 명의 의도된 사용자 간의 보호와 함께 인증을 수행하기 위해 서버가 사용됩니다. 보내는 사람과 받는 사람은 서버의 도움을 받아 확인됩니다.
논리
암스트롱 수의 논리를 확인하기 위해 숫자 중 하나를 사용하여 암스트롱 수법에 대해 간략하게 설명하겠습니다. 논리를 설명하기 위해 숫자를 407로 간주합니다.
407 = (4*4*4) + (0*0*0) + (7*7*7)
여기서는 아래와 같이 각 숫자를 3번 곱합니다.
(4*4*4) = 64
(0*0*0) = 0
(7*7*7) = 343
따라서 위의 곱셈값을 더하면 아래와 같은 결과가 나옵니다.
64+0+343 = 407
아래에 언급된 예시는 다음과 같습니다.
코드:
using System; using System.Collections.Generic; using System.Linq; public class Program { public static void Main() { int i = 0; int num = 0; int[] numArray = new int[10]; double res = 0; //Step 1 : Provide the number in this step Console.Write("Please enter the number : "); int number = int.Parse(Console.ReadLine()); //Step 2 : Now store the number in a temporary variable int tmpryNum = number; //Step 3 : Calculate the total number of integers in number and store each integer in the digit array while (number > 0) { numArray[i++] = number % 10; number = number / 10; num++; } //Step 4 : Calculate the number for (i = 0; i < num; i++) { res += Math.Pow(numArray[i], num); } //Step 5 : Check whether number is prime or not if (res == tmpryNum) { Console.WriteLine($"The number {tmpryNum} is armstrong"); } else { Console.WriteLine($"The number {tmpryNum} is not armstrong"); } Console.ReadLine(); } }
출력:
코드:
using System; using System.Collections.Generic; using System.Linq; public class Program { public static void Main() { int mynum, remainder, res = 0; Console.Write("Please enter an integer number: "); mynum = int.Parse(Console.ReadLine()); for (int m = mynum; m > 0; m = m / 10) { remainder = m % 10; res = res + remainder*remainder*remainder; } if (res == mynum) { Console.Write("The number entered by you is an Armstrong number..."); } else Console.Write("The number entered by you is not an Armstrong number..."); Console.ReadLine(); } }
출력:
코드:
using System; using System.Collections.Generic; using System.Linq; public class Program { public static void Main() { int mynum,m, res=0,r; Console.Write("Please enter the number :"); mynum = Convert.ToInt32(Console.ReadLine()); m = mynum; while(m!=0) { r=m%10; res =res+(r*r*r); m = m / 10; } if(res==mynum) Console.WriteLine("The number which you have entered is an Armstrong Number..."); else Console.WriteLine("The number which you have entered is not an Armstrong Number..."); Console.ReadKey(); } }
출력
코드:
using System; using System.Collections.Generic; using System.Linq; public class Program { public static void Main() { int mynum,val,res,temp_var; int start_no,end_no; Console.Write("\n\n"); Console.Write("Searching for the Armstrong number in a given range of range of numbers:\n"); Console.Write("--------------------------------------------------------"); Console.Write("\n\n"); Console.Write("Enter the starting number... "); start_no= Convert.ToInt32(Console.ReadLine()); Console.Write("Enter the ending number... "); end_no= Convert.ToInt32(Console.ReadLine()); Console.Write("The list of Armstrong numbers in given above range are: "); for(mynum=start_no;mynum<=end_no;mynum++){ temp_var=mynum; res = 0; while(temp_var!=0){ val=temp_var % 10; temp_var=temp_var/10; res=res+(val*val*val); } if(res==mynum) Console.Write("{0} ",mynum); } Console.Write("\n"); } }
출력:
코드:
using System; using System.Collections.Generic; using System.Linq; public class Program { public static void Main() { Console.Write("Enter the Start Number : "); int StartNumber = int.Parse(Console.ReadLine()); Console.Write("Enter the End Number : "); int EndNumber = int.Parse(Console.ReadLine()); Console.WriteLine($"The Armstrong Numbers between {StartNumber} and {EndNumber} are : "); for (int i = StartNumber; i <= EndNumber; i++) { if (IsArmstrongNumber(i)) Console.WriteLine(i); } Console.ReadLine(); } static bool IsArmstrongNumber(int number) { int sum = 0; int temporaryNumber = number; int temp = 0; int length = number.ToString().Length; while (number != 0) { temp = number % 10; number = number / 10; sum += (int)Math.Pow(temp, length); } if (sum == temporaryNumber) { return true; } else { return false; } } }
출력:
코드:
using System; public class Program { // This function is used to find Nth Armstrong Number static int ArmstrongNum(int n) { int cnt = 0; // specifying the upper limit from integer for(int m = 1; m <= int.MaxValue; m++) { int num = m, rem, digit = 0, res = 0; num = m; // Calculate the total digits in num digit = (int) Math.Log10(num) + 1; // Calculate sum of power of digits while(num > 0) { rem = num % 10; res = res + (int)Math.Pow(rem, digit); num = num / 10; } // Check the Armstrong number if(m == res) cnt++; if(cnt == n) return m; } return n; } public static void Main() { int n = 15; Console.WriteLine(ArmstrongNum(n)); } }
출력:
코드:
using System; public class Program { int power(int a, long b) { if( b == 0) return 1; if (b % 2 == 0) return power(a, b / 2) * power(a, b / 2); return a * power(a, b / 2) * power(a, b / 2); } int myfunc(int a) { int n = 0; while (a != 0) { n++; a = a / 10; } return n; } bool ArmstrongNum (int a) { int n = myfunc(a); int tmp_var = a, res = 0; while (tmp_var != 0) { int rs = tmp_var % 10; res = res + power(rs, n); tmp_var = tmp_var / 10; } return (res == a); } public static void Main() { Program pgm = new Program(); int a = 8208; Console.WriteLine(pgm.ArmstrongNum(a)); a = 1423; Console.WriteLine(pgm.ArmstrongNum(a)); } }
출력:
지금까지 암스트롱의 숫자가 C#에서 어떻게 활용될 수 있는지 살펴보았습니다. 정수론에서는 자기애적 수(narcissistic number)라고 합니다. 이 기사를 통해 위에 설명된 내용이 여러분의 C# 지식에 가치를 더해주기를 바랍니다. 위의 다양한 방법으로 암스트롱 숫자기법을 활용한 다양한 숫자놀이를 해보세요.
위 내용은 C#의 암스트롱 번호의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!