Heim > Artikel > Backend-Entwicklung > Armstrong-Nummer in C#
Die Armstrong-Zahl ist eine Zahl, die der Summe ihrer Ziffern in Würfeln entspricht. Sie besteht aus N Ziffern und entspricht der Summe jeder Ziffer, hochgerechnet auf die N-te Potenz. Beispielsweise gelten die Zahlen 0, 1, 153, 370, 371 und 407, 1634, 8208, 9474 als Armstrong-Zahlen. In diesem Thema erfahren wir mehr über die Armstrong-Zahl in C#.
Der Prozess der Ver- und Entschlüsselung verwendet Armstrongs Nummer, die als geheimer Schlüssel verwendet wird. Um eine Authentifizierung und den Schutz zwischen zwei vorgesehenen Benutzern durchzuführen, wird der Server verwendet. Der Absender und der Empfänger werden mithilfe des Servers validiert.
Logik
Um die Logik hinter der Armstrong-Zahl zu verstehen, werden wir anhand einer der Zahlen kurz die Armstrong-Zahlenmethode erläutern. Betrachten Sie die Zahl als 407, um die Logik zu erklären.
407 = (4*4*4) + (0*0*0) + (7*7*7)
Multiplizieren Sie hier jede Zahl dreimal, wie unten gezeigt:
(4*4*4) = 64
(0*0*0) = 0
(7*7*7) = 343
Daher addieren Sie die oben genannten Zahlen, Sie erhalten das Ergebnis wie unten beschrieben:
64+0+343 = 407
Hier sind die folgenden Beispiele aufgeführt.
Code:
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(); } }
Ausgabe:
Code:
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(); } }
Ausgabe:
Code:
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(); } }
Ausgabe
Code:
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"); } }
Ausgabe:
Code:
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; } } }
Ausgabe:
Code:
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)); } }
Ausgabe:
Code:
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)); } }
Ausgabe:
Bisher haben wir untersucht, wie die Armstrong-Zahl in C# verwendet werden kann. In der Zahlentheorie wird sie als narzisstische Zahl bezeichnet. Ich hoffe, dass der oben erläuterte Inhalt mit diesem Artikel einen Mehrwert für Ihre C#-Kenntnisse darstellt. Versuchen Sie es mit verschiedenen Arten von Zahlen, wie oben gezeigt, mit verschiedenen Methoden, um mit der Armstrong-Zahlentechnik zu spielen.
Das obige ist der detaillierte Inhalt vonArmstrong-Nummer in C#. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!