Olympiad

New Member
ارسال ها
1,268
لایک ها
134
امتیاز
0
#61
rezashiri گفت
جواب این سوال رو فردا بدیم!؟!؟(یکم زیادی آسونه)

من می گم از سوال 3 به بعد یک روز وقت بذاریم !؟!

چطوره!؟
سوال 1 آسون هست .........
اگه ميشه كد سوال 2 رو بذاريد..........(يعني سوال 2 آسونه؟؟؟؟
)
 

rezashiri

Well-Known Member
ارسال ها
1,458
لایک ها
325
امتیاز
83
#62
این کد من:(البته خیلی ساده نوشتمش -می شد مثلا از || استفاده کرد و...)
کد
#include <stdio.h>
#include <conio.h>

int main()
{
int a,b,c=0,sum,x=0,y=0,z=0;
for (a=1;a<1000;a++){
if (a%3==0)
x=x+a;
}

for (b=1;b<1000;b++){
if (b%5==0)
y=y+b;
}

for (c=1;c<1000;c++){
if (c%15==0)
z=z+c;
}

sum=x+y-z;
printf("sum=%d",sum);

getch();
return 0;
}
که جواب می شه : 233168
 

SABB

New Member
ارسال ها
704
لایک ها
25
امتیاز
0
#63
Olympiad گفت
rezashiri گفت
جواب این سوال رو فردا بدیم!؟!؟(یکم زیادی آسونه)

من می گم از سوال 3 به بعد یک روز وقت بذاریم !؟!

چطوره!؟
سوال 1 آسون هست .........
اگه ميشه كد سوال 2 رو بذاريد..........(يعني سوال 2 آسونه؟؟؟؟
)
کد
#include<iostream.h>
#include<conio.h>
int main()
{
    unsigned long a=2,b=1,c,s=0;
    while(a<4000000)
    {
				if(a%2==0)
				   s+=a;
				c=a;
				a+=b;
				b=c;
    }
    cout<<s;
    getch();
}
 

SABB

New Member
ارسال ها
704
لایک ها
25
امتیاز
0
#64
سوال 3 قبلا در همین جا حل شده، سوال 4 را حل کنیم یا همان 3 را؟
 

SABB

New Member
ارسال ها
704
لایک ها
25
امتیاز
0
#65
راستی در ماراتن برنامه نویسی یک سوال ساده گذاشتم. چرا کسی حل نمیکنه؟
 

rezashiri

Well-Known Member
ارسال ها
1,458
لایک ها
325
امتیاز
83
#66
SABB گفت
سوال 3 قبلا در همین جا حل شده، سوال 4 را حل کنیم یا همان 3 را؟
3 رو اگه می شه خودت کدشو حالا بذار و یه توضیح مختصر بده.

بعد سوال 4 رو بذار و تا ساعت 6 صبر کن.
 

SABB

New Member
ارسال ها
704
لایک ها
25
امتیاز
0
#67
rezashiri گفت
SABB گفت
سوال 3 قبلا در همین جا حل شده، سوال 4 را حل کنیم یا همان 3 را؟
3 رو اگه می شه خودت کدشو حالا بذار و یه توضیح مختصر بده.

بعد سوال 4 رو بذار و تا ساعت 6 صبر کن.
از Bignum استفاده می کنیم و می فهمیم این اعدد بر 1471 بخشپذیر است. سپس با ماشین حساب ویندوز (
) عدد 600851475143 را بر 1471 تقسیم کرده و به عدد 408464633 می رسیم. بعد هم که آسان است. این هم کد من:
کد
#include<iostream.h>
#include<conio.h>
#include<math.h>
int isprime(unsigned long long int n)
{
	    int flag=1;
	    for(unsigned long long int i=2;(i<=sqrt(n))&&(flag==1);i++)
		  if(n%i==0)
			flag=0;
	    return flag;
}
unsigned long long gpd(unsigned long long n)
{
	    unsigned long long i,j=1,flag=1;
	    i=n;
	    while(flag)
	    {
				   if(n%j==0)
					 i=n/j;
				   j++;
				   if(isprime(i))
					  flag=0;
	    }
	    return i;
}
int main()
{
    cout<<gpd(408464633);
    getch();
    return 0;
}
 

rezashiri

Well-Known Member
ارسال ها
1,458
لایک ها
325
امتیاز
83
#68
SABB گفت
rezashiri گفت
SABB گفت
سوال 3 قبلا در همین جا حل شده، سوال 4 را حل کنیم یا همان 3 را؟
3 رو اگه می شه خودت کدشو حالا بذار و یه توضیح مختصر بده.

بعد سوال 4 رو بذار و تا ساعت 6 صبر کن.
از Bignum استفاده می کنیم و می فهمیم این اعدد بر 1471 بخشپذیر است. سپس با ماشین حساب ویندوز (
) عدد 600851475143 را بر 1471 تقسیم کرده و به عدد 408464633 می رسیم. بعد هم که آسان است. این هم کد من:
کد
#include<iostream.h>
#include<conio.h>
#include<math.h>
int isprime(unsigned long long int n)
{
	    int flag=1;
	    for(unsigned long long int i=2;(i<=sqrt(n))&&(flag==1);i++)
		  if(n%i==0)
			flag=0;
	    return flag;
}
unsigned long long gpd(unsigned long long n)
{
	    unsigned long long i,j=1,flag=1;
	    i=n;
	    while(flag)
	    {
				   if(n%j==0)
					 i=n/j;
				   j++;
				   if(isprime(i))
					  flag=0;
	    }
	    return i;
}
int main()
{
    cout<<gpd(408464633);
    getch();
    return 0;
}
Bignum چیه!؟!؟
 

SABB

New Member
ارسال ها
704
لایک ها
25
امتیاز
0
#69
rezashiri گفت
SABB گفت
rezashiri گفت
SABB گفت
سوال 3 قبلا در همین جا حل شده، سوال 4 را حل کنیم یا همان 3 را؟
3 رو اگه می شه خودت کدشو حالا بذار و یه توضیح مختصر بده.

بعد سوال 4 رو بذار و تا ساعت 6 صبر کن.
از Bignum استفاده می کنیم و می فهمیم این اعدد بر 1471 بخشپذیر است. سپس با ماشین حساب ویندوز (
) عدد 600851475143 را بر 1471 تقسیم کرده و به عدد 408464633 می رسیم. بعد هم که آسان است. این هم کد من:
کد
#include<iostream.h>
#include<conio.h>
#include<math.h>
int isprime(unsigned long long int n)
{
	    int flag=1;
	    for(unsigned long long int i=2;(i<=sqrt(n))&&(flag==1);i++)
		  if(n%i==0)
			flag=0;
	    return flag;
}
unsigned long long gpd(unsigned long long n)
{
	    unsigned long long i,j=1,flag=1;
	    i=n;
	    while(flag)
	    {
				   if(n%j==0)
					 i=n/j;
				   j++;
				   if(isprime(i))
					  flag=0;
	    }
	    return i;
}
int main()
{
    cout<<gpd(408464633);
    getch();
    return 0;
}
Bignum چیه!؟!؟
ریختن رقم های یک عدد بزرگ (که در محدوده ها ی long و... جا نمی شه) در یک آرایه. مثلا به جای عدد 600851475143 که حتی در unsigned long long هم جا نمی شه، یه آرایه بسازیم مثل a که a[0]=6,a[1]=0,...a[11]=3 به این ترتیب دیگه با مشگل بزرگ بودن عدد برخورد نمی کنیم.
 

SABB

New Member
ارسال ها
704
لایک ها
25
امتیاز
0
#70
[center:b00e2dce3b]4
کد
#include<iostream.h>
#include<conio.h>
#include<SABB.h>
int ispalindrome(unsigned long long n)
{
    unsigned long long a[1000],i=0,j,flag=1;
    while(n>0)
    {
		    a[i]=n%10;
		    n/=10;
		    i++;
    }
    for(j=0;(j<i/2)&&flag;j++)
	  if(a[j]!=a[i-j-1])
		flag=0;
    return flag;
}
int main()
{
    unsigned long long i,j,flag=1,n=0;
    for(i=999;i>99;i--)
	  for(j=i;j>99;j--)
		if(ispalindrome(i*j))
		   if(i*j>n)
			 n=i*j;
    cout<<n;
    getch();
    return 0;
}
که جواب می ده: 906609​
[/center:b00e2dce3b]
 

rezashiri

Well-Known Member
ارسال ها
1,458
لایک ها
325
امتیاز
83
#71
SABB گفت
[center:2702bfd840]4
کد
#include<iostream.h>
#include<conio.h>
#include<SABB.h>
int ispalindrome(unsigned long long n)
{
    unsigned long long a[1000],i=0,j,flag=1;
    while(n>0)
    {
		    a[I]=n%10;
		    n/=10;
		    i++;
    }
    for(j=0;(j<i/2)&&flag;j++)
	  if(a[j]!=a[i-j-1])
		flag=0;
    return flag;
}
int main()
{
    unsigned long long i,j,flag=1,n=0;
    for(i=999;i>99;i--)
	  for(j=i;j>99;j--)
		if(ispalindrome(i*j))
		   if(i*j>n)
			 n=i*j;
    cout<<n;
    getch();
    return 0;
}
[/I]
که جواب می ده: 906609
[/center:2702bfd840]


قرار بود سوال 4 رو بذارید نه جوابشو.
حالا لطفا سوال 5 رو بذارید.(ترجمه کنید.)
 

Olympiad

New Member
ارسال ها
1,268
لایک ها
134
امتیاز
0
#72
[center:2e69edb9b0]5
2020 كوچكترين عددي است كه بر هر يك از اعداد 1 تا 10 بخشپذير است. كوچكترين عدد مثبت را بيابيد كه بر هر يك از اعداد 1 تا 20 بخشپذير باشد.
[/center:2e69edb9b0]

 

SABB

New Member
ارسال ها
704
لایک ها
25
امتیاز
0
#73
rezashiri گفت
SABB گفت
[center:c2555383de]4
کد
#include<iostream.h>
#include<conio.h>
#include<SABB.h>
int ispalindrome(unsigned long long n)
{
    unsigned long long a[1000],i=0,j,flag=1;
    while(n>0)
    {
		    a[I]=n%10;
		    n/=10;
		    i++;
    }
    for(j=0;(j<i/2)&&flag;j++)
	  if(a[j]!=a[i-j-1])
		flag=0;
    return flag;
}
int main()
{
    unsigned long long i,j,flag=1,n=0;
    for(i=999;i>99;i--)
	  for(j=i;j>99;j--)
		if(ispalindrome(i*j))
		   if(i*j>n)
			 n=i*j;
    cout<<n;
    getch();
    return 0;
}
[/I]
که جواب می ده: 906609
[/center:c2555383de]


قرار بود سوال 4 رو بذارید نه جوابشو.
حالا لطفا سوال 5 رو بذارید.(ترجمه کنید.)
مگه تا ساعت 6 وقت نیست؟
 

Olympiad

New Member
ارسال ها
1,268
لایک ها
134
امتیاز
0
#74
SABB گفت
rezashiri گفت
SABB گفت
[center:cdb189214b]4
کد
#include<iostream.h>
#include<conio.h>
#include<SABB.h>
int ispalindrome(unsigned long long n)
{
    unsigned long long a[1000],i=0,j,flag=1;
    while(n>0)
    {
		    a[I]=n%10;
		    n/=10;
		    i++;
    }
    for(j=0;(j<i/2)&&flag;j++)
	  if(a[j]!=a[i-j-1])
		flag=0;
    return flag;
}
int main()
{
    unsigned long long i,j,flag=1,n=0;
    for(i=999;i>99;i--)
	  for(j=i;j>99;j--)
		if(ispalindrome(i*j))
		   if(i*j>n)
			 n=i*j;
    cout<<n;
    getch();
    return 0;
}
[/I]
که جواب می ده: 906609
[/center:cdb189214b]


قرار بود سوال 4 رو بذارید نه جوابشو.
حالا لطفا سوال 5 رو بذارید.(ترجمه کنید.)
مگه تا ساعت 6 وقت نیست؟
منظورشون اين بود تا ساعت 6 صبر كنيد اگه حل نشد .... كد را بذاريد
 

Olympiad

New Member
ارسال ها
1,268
لایک ها
134
امتیاز
0
#75
Olympiad گفت
[center:af12caff03]5
2020 كوچكترين عددي است كه بر هر يك از اعداد 1 تا 10 بخشپذير است. كوچكترين عدد مثبت را بيابيد كه بر هر يك از اعداد 1 تا 20 بخشپذير باشد.
[/center:af12caff03]

من اين سوال رو دستي حل كردم
 

SABB

New Member
ارسال ها
704
لایک ها
25
امتیاز
0
#76
Olympiad گفت
SABB گفت
rezashiri گفت
SABB گفت
[center:d98bc37b8b]4
کد
#include<iostream.h>
#include<conio.h>
#include<SABB.h>
int ispalindrome(unsigned long long n)
{
    unsigned long long a[1000],i=0,j,flag=1;
    while(n>0)
    {
		    a[I]=n%10;
		    n/=10;
		    i++;
    }
    for(j=0;(j<i/2)&&flag;j++)
	  if(a[j]!=a[i-j-1])
		flag=0;
    return flag;
}
int main()
{
    unsigned long long i,j,flag=1,n=0;
    for(i=999;i>99;i--)
	  for(j=i;j>99;j--)
		if(ispalindrome(i*j))
		   if(i*j>n)
			 n=i*j;
    cout<<n;
    getch();
    return 0;
}
[/I]
که جواب می ده: 906609
[/center:d98bc37b8b]


قرار بود سوال 4 رو بذارید نه جوابشو.
حالا لطفا سوال 5 رو بذارید.(ترجمه کنید.)
مگه تا ساعت 6 وقت نیست؟
منظورشون اين بود تا ساعت 6 صبر كنيد اگه حل نشد .... كد را بذاريد
پس من اشتباه متوجه شدم


ولی میتونیم تا ساعت 6 صبر کنیم...
 

SABB

New Member
ارسال ها
704
لایک ها
25
امتیاز
0
#77
Olympiad گفت
Olympiad گفت
[center:56ed45622d]5
2020 كوچكترين عددي است كه بر هر يك از اعداد 1 تا 10 بخشپذير است. كوچكترين عدد مثبت را بيابيد كه بر هر يك از اعداد 1 تا 20 بخشپذير باشد.
[/center:56ed45622d]

من اين سوال رو دستي حل كردم
آره، من هم سوال 1 رو دستی حل کردم!
خیلی حال میده واسه مرحله 3 از این سوالا بذارن که دستی هم حل شه!!!
 

SABB

New Member
ارسال ها
704
لایک ها
25
امتیاز
0
#78
سوال 6 رو هم میشه دستی حل کرد.​
 

SABB

New Member
ارسال ها
704
لایک ها
25
امتیاز
0
#79
پس تا ساعت 6 صبر کنیم تا همه کد هاشون رو واسه سوال 4 بذارن.
 

Olympiad

New Member
ارسال ها
1,268
لایک ها
134
امتیاز
0
#80
SABB گفت
پس تا ساعت 6 صبر کنیم تا همه کد هاشون رو واسه سوال 4 بذارن.
اگه سوال 6 رو دستي حل كنيم ... بعد از حل مسئله همه ي اين حالات برامون پيش مياد
:
 
بالا