SABB

New Member
ارسال ها
704
لایک ها
25
امتیاز
0
#81
Olympiad گفت
SABB گفت
پس تا ساعت 6 صبر کنیم تا همه کد هاشون رو واسه سوال 4 بذارن.
اگه سوال 6 رو دستي حل كنيم ... بعد از حل مسئله همه ي اين حالات برامون پيش مياد
:
یه ذره از ماشین حساب کمک می گیریم
 

SABB

New Member
ارسال ها
704
لایک ها
25
امتیاز
0
#82
Olympiad گفت
SABB گفت
پس تا ساعت 6 صبر کنیم تا همه کد هاشون رو واسه سوال 4 بذارن.
اگه سوال 6 رو دستي حل كنيم ... بعد از حل مسئله همه ي اين حالات برامون پيش مياد
:
اشتباهی نقل قول کردید!!!!
اون بالایه بود
 

SABB

New Member
ارسال ها
704
لایک ها
25
امتیاز
0
#83
یه چیز جالب: وقتی آقای گوهرشادی نیستن ما تعداد پست هامون میره بالا و بیشتر فعال می شیم.
سوال: دلیلش چیه؟
جواب: آقای گوهرشادی سوالات قشنگ (قشنگ=سخت) می ذارن و کسی نمی تونه حل کنه. بعد مجبور میشن وقت بدن تا حل کنیم. بعد هم ما نمی تونیم حل کنیم خودشون جوابو می ذارن
 

Olympiad

New Member
ارسال ها
1,268
لایک ها
134
امتیاز
0
#84

SABB

New Member
ارسال ها
704
لایک ها
25
امتیاز
0
#85
Olympiad گفت
SABB گفت
Olympiad گفت
SABB گفت
پس تا ساعت 6 صبر کنیم تا همه کد هاشون رو واسه سوال 4 بذارن.
اگه سوال 6 رو دستي حل كنيم ... بعد از حل مسئله همه ي اين حالات برامون پيش مياد
:
یه ذره از ماشین حساب کمک می گیریم
چجوري؟
1^2+2^2+....+100^2 که راحته (از فرمول
)
2^(1+2+...+100) هم که راحته (اول جمع توی پرانتز و بعد هم توان 2)
حالا از هم کمشون می کنیم.
 

rezashiri

Well-Known Member
ارسال ها
1,458
لایک ها
325
امتیاز
83
#86
Olympiad گفت
Olympiad گفت
[center:d207142ecf]5
2020 كوچكترين عددي است كه بر هر يك از اعداد 1 تا 10 بخشپذير است. كوچكترين عدد مثبت را بيابيد كه بر هر يك از اعداد 1 تا 20 بخشپذير باشد.
[/center:d207142ecf]

من اين سوال رو دستي حل كردم
منم دستی حلش کردم.(جوابش می شه 232792560)

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

طبق قوانین مرحله 3 المپیاد کامپیوتر لازم نیست حتما برنامه بنویسیم پس جواب فقط مهمه که بدست اومد.

(راستی سوالت رو ویرایش کن - به جای 2020 بنویس 2520.)
 

SABB

New Member
ارسال ها
704
لایک ها
25
امتیاز
0
#87
اون ها 1 به توان2، 2 به توان2،... هستن، نمی دونم چرا توانا برعکس افتادن
 

Olympiad

New Member
ارسال ها
1,268
لایک ها
134
امتیاز
0
#88
SABB گفت
Olympiad گفت
SABB گفت
Olympiad گفت
SABB گفت
پس تا ساعت 6 صبر کنیم تا همه کد هاشون رو واسه سوال 4 بذارن.
اگه سوال 6 رو دستي حل كنيم ... بعد از حل مسئله همه ي اين حالات برامون پيش مياد
:
یه ذره از ماشین حساب کمک می گیریم
چجوري؟
1^2+2^2+....+100^2 که راحته (از فرمول
)
2^(1+2+...+100) هم که راحته (اول جمع توی پرانتز و بعد هم توان 2)
حالا از هم کمشون می کنیم.
با اجازه تون من سوال 7 رو باز كردم (10001 امين عدد اول)......اين سوال رو هم خودم دستي حل كردم
 

SABB

New Member
ارسال ها
704
لایک ها
25
امتیاز
0
#89
Olympiad گفت
SABB گفت
Olympiad گفت
SABB گفت
Olympiad گفت
SABB گفت
پس تا ساعت 6 صبر کنیم تا همه کد هاشون رو واسه سوال 4 بذارن.
اگه سوال 6 رو دستي حل كنيم ... بعد از حل مسئله همه ي اين حالات برامون پيش مياد
:
یه ذره از ماشین حساب کمک می گیریم
چجوري؟
1^2+2^2+....+100^2 که راحته (از فرمول
)
2^(1+2+...+100) هم که راحته (اول جمع توی پرانتز و بعد هم توان 2)
حالا از هم کمشون می کنیم.
با اجازه تون من سوال 7 رو باز كردم (10001 امين عدد اول)......اين سوال رو هم خودم دستي حل كردم
چه جوری؟ nامین عدد اول فرمول داره؟؟
 

Olympiad

New Member
ارسال ها
1,268
لایک ها
134
امتیاز
0
#90
SABB گفت
Olympiad گفت
SABB گفت
Olympiad گفت
SABB گفت
Olympiad گفت
SABB گفت
پس تا ساعت 6 صبر کنیم تا همه کد هاشون رو واسه سوال 4 بذارن.
اگه سوال 6 رو دستي حل كنيم ... بعد از حل مسئله همه ي اين حالات برامون پيش مياد
:
یه ذره از ماشین حساب کمک می گیریم
چجوري؟
1^2+2^2+....+100^2 که راحته (از فرمول
)
2^(1+2+...+100) هم که راحته (اول جمع توی پرانتز و بعد هم توان 2)
حالا از هم کمشون می کنیم.
با اجازه تون من سوال 7 رو باز كردم (10001 امين عدد اول)......اين سوال رو هم خودم دستي حل كردم
چه جوری؟ nامین عدد اول فرمول داره؟؟
منظورم اين بود كه شما گفتيد سوال 6 رو ميشه دستي حل كرد اما من اشتباها سوال 7 رو باز كردم و برا همين گفتم كه چجوري از ماشين حساب استفاده كنيم و........ سوال 6 رو هم خودم دستي حل كردم
 

rezashiri

Well-Known Member
ارسال ها
1,458
لایک ها
325
امتیاز
83
#91
[center:a2c483b71f]سوال 6)

این سوالم که خیلی راحته کد من :

کد
#include <stdio.h>
#include <conio.h>

int main()
{
    long long a,b,c=0,x,y=0,z,tavan;
    
    for (a=1;a<101;a++){
    b=a*a;
    c=c+b;
   }
	printf("\nsum=%d\n",c);
	
	for (x=1;x<101;x++){
	y=y+x;
	tavan=y*y;}
	printf("\nsum2=%d\n",tavan);
	
	
	
	z=tavan-c;
	printf("\nsum2-sum=%d\n",z);
	
    
    getch();
    return 0;
}
[/center:a2c483b71f]
 

SABB

New Member
ارسال ها
704
لایک ها
25
امتیاز
0
#92
پس فعلا برای سوال 4 صبر کنیم یا نه؟؟
 

rezashiri

Well-Known Member
ارسال ها
1,458
لایک ها
325
امتیاز
83
#93
SABB گفت
پس فعلا برای سوال 4 صبر کنیم یا نه؟؟
خیر.

لطفا پست های بیخودم نذارید.

برای سوال 7 تا ساعت 18 وقت بدید.بعدش جوابشو بذارید.
 

rezashiri

Well-Known Member
ارسال ها
1,458
لایک ها
325
امتیاز
83
#94
حل نشد.

لطفا جوابشو بذار.

البته این کد تمام اعداد اول قبل از عدد ورودی را چاپ می کند.

کد
 #include <iostream.h>

void main()
{   start:
	long c=0,x,z=0;
	register j;
	cout<<"\nEnter a number:(2 or bigger)\n"<<endl;
	cin>>x;
	cout<<"All the prime numbers less than entered number:"<<endl<<"2\t";
	for(register int i=3;i<x;i+=2)
	{
		for(j=2;j<i;j++)
			 if((i%j)==0)
			 {  ;
				 c=1;
				 break;
			 }
		if(c==0)
			 cout<<i<<"\t";
		c=0;
	}
	goto start;
}
 

SABB

New Member
ارسال ها
704
لایک ها
25
امتیاز
0
#95
[center:017b1c892d]7
کد
#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;
}
int main()
{
    unsigned long long pc=1,i=1;
    while(pc<10001)
    {
			    i+=2;
			    if(isprime(i))
			    {
						pc++;
			    }
    }
    cout<<i;
    getch();
    return 1374;
}
[/center:017b1c892d]
 

SABB

New Member
ارسال ها
704
لایک ها
25
امتیاز
0
#96
[center:579c8bf407]8
[/center:579c8bf407]در عدد 1000 رقمی زیر بیشترین مقدار حاصلصرب 5 رقم متوالی را بیابید:
73167176531330624919225119674426574742355349194934
96983520312774506326239578318016984801869478851843
85861560789112949495459501737958331952853208805511
12540698747158523863050715693290963295227443043557
66896648950445244523161731856403098711121722383113
62229893423380308135336276614282806444486645238749
30358907296290491560440772390713810515859307960866
70172427121883998797908792274921901699720888093776
65727333001053367881220235421809751254540594752243
52584907711670556013604839586446706324415722155397
53697817977846174064955149290862569321978468622482
83972241375657056057490261407972968652414535100474
82166370484403199890008895243450658541227588666881
16427171479924442928230863465674813919123162824586
17866458359124566529476545682848912883142607690042
24219022671055626321111109370544217506941658960408
07198403850962455444362981230987879927244284909188
84580156166097919133875499200524063689912560717606
05886116467109405077541002256983155200055935729725
71636269561882670428252483600823257530420752963450
 

Olympiad

New Member
ارسال ها
1,268
لایک ها
134
امتیاز
0
#97
7


اين كد چه مشكلي داره؟؟؟
هيچ چي چاپ نمي كنه!!!

کد
#include<iostream>
#include <math.h>
#include<conio.h>
using namespace std;
bool isprime(unsigned long long int n)
{
	for(unsigned long long int i=1;(i<=sqrt(n));i++)
	{
			   if(n%i==0)
			   return false;
			   else
			   return true;
			   }
			   }
  int main()
  {
	 unsigned long long int i=1,count=1;
	 while(count<10001)
	 {
				    i+=2;
				    if(isprime(i)==true)
				    count ++;
				    }
				    printf("\n%d",i);
				    getch();
				    return i;
				    }
 

SABB

New Member
ارسال ها
704
لایک ها
25
امتیاز
0
#98
Olympiad گفت
7


اين كد چه مشكلي داره؟؟؟
هيچ چي چاپ نمي كنه!!!

کد
#include<iostream>
#include <math.h>
#include<conio.h>
using namespace std;
bool isprime(unsigned long long int n)
{
	for(unsigned long long int i=1;(i<=sqrt(n));i++)
	{
			   if(n%i==0)
			   return false;
			   else
			   return true;
			   }
			   }
  int main()
  {
	 unsigned long long int i=1,count=1;
	 while(count<10001)
	 {
				    i+=2;
				    if(isprime(i)==true)
				    count ++;
				    }
				    printf("\n%d",i);
				    getch();
				    return i;
				    }

اینطوری هیچ کدوم از اعداد اول نیستن، برای همین برنامه همین جوری اعداد و چک می کنه!
تو تابع isprime یه سوتی دادی! i رو باید از 2 شروع کنید
 

Olympiad

New Member
ارسال ها
1,268
لایک ها
134
امتیاز
0
#99
SABB گفت
[center:6f54f6c20e]7
کد
#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;
}
int main()
{
    unsigned long long pc=1,i=1;
    while(pc<10001)
    {
			    i+=2;
			    if(isprime(i))
			    {
						pc++;
			    }
    }
    cout<<i;
    getch();
    return 1374;
}
[/center:6f54f6c20e]
اگه ميشه كد تصحيح شده ي من رو بنويسيد...............
شما در اون حلقه ي for اولي ........ ميشه يه توضيح بديد...... يعني چي i كوچكتر از راديكال n و flag==1 ؟!؟؟!؟
 

SABB

New Member
ارسال ها
704
لایک ها
25
امتیاز
0
Olympiad گفت
SABB گفت
[center:8e5d50eb5e]7
کد
#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;
}
int main()
{
    unsigned long long pc=1,i=1;
    while(pc<10001)
    {
			    i+=2;
			    if(isprime(i))
			    {
						pc++;
			    }
    }
    cout<<i;
    getch();
    return 1374;
}
[/center:8e5d50eb5e]
اگه ميشه كد تصحيح شده ي من رو بنويسيد...............
شما در اون حلقه ي for اولي ........ ميشه يه توضيح بديد...... يعني چي i كوچكتر از راديكال n و flag==1 ؟!؟؟!؟
اون flag برای بالا بردن اردر الگوریتمه (مثل همون return false شما)، یعنی به برنامه میگه به محض این که فهمیدی عدد حداقل بر یک عدد بزرگتر از یک و کوچکتر از خودش بخشپذیره از حلقه بیا بیرون و دیگه بقیه اعداد و چک نکن. البته می شه همون تو return 0 یا return false کرد که معادل همین کاره، ولی نمی دونم چرا من ترجیح می دم از flag استفاده کنم.
یه سوتی هم تو تابع isprime وجود داره و اون اینه که معیار اول بودن یا مرکب بودن اعداد توش فقط بخشپذیری بر n-1 ئه!! با این حساب تصحیح شده کدتون می شه همون کد من که فقط اون شرط flag==1 رو نداره و خروجیش از نوع bool ئه.
این هم تصحیح کدتون:
کد
#include<iostream>
#include <math.h>
#include<conio.h>
using namespace std;
bool isprime(unsigned long long int n)
{
	for(unsigned long long int i=2;(i<=sqrt(n));i++)
			   if(n%i==0)
				 return false;
	return true;
}
  int main()
  {
	 unsigned long long int i=1,count=1;
	 while(count<10001)
	 {
				    i+=2;
				    if(isprime(i)==true)
				    count ++;
				    }
				    printf("\n%d",i);
				    getch();
				    return i;
				    }
 
بالا