امیرحسین حقی
امیرحسین حقی
خواندن ۱ دقیقه·۳ سال پیش

کد بدست آوردن اعداد مثلثی و اعداد مربعی و شناسایی ۳ عدد مشترک بین اعداد مثلثی و مربعی تا عدد ۱۰ میلیون در نظریه اعداد با زبان جاوا


این اولین کدیه که خودم زدم و از اینترنت هیچ قسمتیش رو نگاه نکردم.

اگر مفهوم اعداد مثلثی و مربعی رو نمیدونید میتونید تو اینترنت راجبش سرچ کنید.

این تصویر تا حدودی مفهوم رو میرسونه.

این کد ابتدا با الگو . . . + ۴ + ۳ + ۲ + ۱ اعداد مثلثی زیر ‍۱۰ میلیون رو پیدا می کنه بعد با الگو 2^1, 2^2, 2^3, 2^4, 2^n+1 اعداد مربع رو بدست میاره بعد اعداد مربع و مرکب رو درون یک آرایه قرار میده و بعد اعداد این دو آرایه رو برای بدست آوردن اعداد مشترک روی یک مکانیسم دو حلقه ای بررسی می کنه و در نهایت ۳ عدد رو که هم مربعین هم مثلثی رو شناسایی میکنه.

اون ۳ عدد ۳۶، ۱۲۲۵ و ۴۱۶۱۶ هستند.

این کد حل یک مسعله مربوط به نظریه اعداده.

این کد رو میتونید روی کامپایلر آنلاین W3school تست کنید.

چیزی که من از این تجربه فهمیدم این بود که خودت فکر کنی کد رو بزنی راحت تر از سرچ کردن و اسفاده و درک کردن کد دیگرانه.

public class Main {

public static void main(String[] args) {

// Both Trangular & Square Numbers Finding Under 10 Million By : Amirhossein Haghy

// Email : Amirhosseinhaghy9@gmail.com

// Insta : bigtitan_amir

// Trangular Numbers Variables

int a = 1;

int b = 1;

int c = 1;

int[] myArray = new int[10000100];

int ar = -1;

// Square Numbers Variables

int d = 1;

int e = 2;

double f = 1;

double[] yourArray = new double[10000100];

int yr = -1;

// Both Trangular & Square Numbers

int mrdavid = -1;

int mrali = -1;

// Trangular Numbers Finder Loop

System.out.println("Trangular Numbers");

System.out.println("");

while (c <= 10000000) {

b++;

ar++;

c = a + b;

myArray[ar] = c;

a = c;

System.out.println(myArray[ar]);

}

System.out.println("///////////////////////////////////////////////////////////////////////////////////");

// Square Numbers Finder Loop

System.out.println("Square Numbers");

System.out.println("");

while (f <= 10000000) {

d++;

yr++;

f = Math.pow(d, e);

yourArray[yr] = f;

System.out.println(yourArray[yr]);

}

System.out.println("///////////////////////////////////////////////////////////////////////////////////");

// Both Trangular & Square Numbers Finder Loop

System.out.println("Both Trangular & Square Numbers");

System.out.println("");

while (mrdavid <= 1000) {

mrdavid++;

while (mrali <= 1000) {

mrali++;

if (myArray[mrdavid] == yourArray[mrali]) {

System.out.println(myArray[mrdavid]);

}

}

mrali = -1;

} System.out.println("///////////////////////////////////////////////////////////////////////////////////");

}

}

نظریه اعدادکدنویسیجاوااعداد مثلثیاعداد مربعی
شاید از این پست‌ها خوشتان بیاید