Nombor Armstrong ialah nombor yang sama dengan jumlah digitnya dalam kubus. Ia terdiri daripada N digit dan bersamaan dengan jumlah setiap digit yang dinaikkan kepada kuasa N. Sebagai contoh, nombor termasuk 0, 1, 153, 370, 371 dan 407, 1634, 8208, 9474 dianggap nombor Armstrong. Dalam topik ini, kita akan mempelajari tentang Nombor Armstrong dalam C#.
Proses penyulitan dan penyahsulitan menggunakan nombor Armstrong yang akan ditunjuk sebagai kunci rahsia. Untuk membuat pengesahan bersama-sama dengan perlindungan antara dua pengguna yang dimaksudkan, pelayan digunakan. Pengirim dan penerima akan disahkan dengan bantuan pelayan.
Logik
Untuk melihat logik di sebalik nombor Armstrong, kami akan menggunakan salah satu nombor untuk menerangkan secara ringkas tentang kaedah nombor Armstrong. Pertimbangkan nombor sebagai 407 untuk menerangkan logiknya.
407 = (4*4*4) + (0*0*0) + (7*7*7)
Di sini, darab setiap nombor tiga kali seperti yang ditunjukkan di bawah:
(4*4*4) = 64
(0*0*0) = 0
(7*7*7) = 343
Oleh itu, tambah nombor yang didarab di atas, anda akan mendapat keputusan seperti yang tertulis di bawah:
64+0+343 = 407
Berikut ialah contoh berikut yang disebut di bawah.
Kod:
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(); } }
Output:
Kod:
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(); } }
Output:
Kod:
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(); } }
Output
Kod:
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"); } }
Output:
Kod:
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; } } }
Output:
Kod:
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)); } }
Output:
Kod:
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)); } }
Output:
Setakat ini, kami telah mengkaji bagaimana nombor Armstrong boleh digunakan dalam C#. Dalam teori nombor, ia dikenali sebagai nombor narsisistik. Dengan artikel ini, saya berharap kandungan yang dijelaskan di atas menambah nilai kepada pengetahuan C# anda. Cuba dengan pelbagai jenis nombor seperti yang ditunjukkan dalam pelbagai kaedah di atas untuk bermain dengan teknik nombor Armstrong.
Atas ialah kandungan terperinci Nombor Armstrong dalam C#. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!