# Native Code > برنامه نویسی با C > برنامه نویسی با زبان C و ++C > سوال: پیدا کردن اعداد اول قبل از n در ++C

## Aerox1

سر بر همگی . این اولین پست و تاپیک من در این سایته .
سوال اینه که برنامه ای میخواد که عدد n رو وارد و تمام اعداد اول قبلش رو با استفاده از تعریف زیر بده :
عددی اوله که بر هیچیک از اعداد اول قبل خودش بخشپذیر نباشه .


#include<iostream>
using namespace std;
int main()
{
    int n,a,b,c,i=2;
    cout<<"Enter n Please"<<endl;
    cin>>n;
    a=3;
    while(a<=n)
    {
        b=2;
        c=2;
        while(b<a)
        {
            while(c<b)
            {
                if(b%c!=0)
                    C++‎‎;
                else
                    {b++;
                break;}
            }
        if(a%b!=0)
                b++;
        else
        {a++;
        break;}
        }
        cout<<a<<endl;
        a++;

    }

    system("PAUSE");
    return EXIT_SUCCESS;
}

اینو نوشتم ولی جواب نمیده :| 

ممنون میشم اگه راهنمایی کنید

----------


## storm_saeed

سورس تو خیلی پیچوندی
#include <iostream>
#include <conio.h>
using namespace std;
int prime(int);
int main()
{
	int n;
	while(1)
	{
		cout<<"\n enter a number";
		cin>>n;
		if(prime(n))
		cout<<"\n your number is prime";
		else
		cout<<"\n your number is not prime";
}
return 0;
}
//--------------------
int prime(int n)
{
int i,t=1;
for(i=2;(i<=n/2)&& t;i++)
 if(n%i==0)
 t=0;
 return t;
}

----------


## storm_saeed

این سورس اعداد اول هست با یکم تغییر میتونی اعداد اول قبل اونو هم پیدا کنی

----------


## Aerox1

با تشکر از پاسخگویی ولی سوال چیز دیگه ای میخواد ! پیدا کردن اعداد اول قبلش هم با یک حلقه for بدست میاد ولی مسئله اینجاست که همون اعداد اول قبل n رو ( مثلا a ) با تقسیم بر اعداد اول قبل خودش پیدا کنیم که کمی پیچ میخوره مسئله !

----------


## storm_saeed

فکر نکنم با اعداد *اول*  قبل خودش بشه حالا کسایی که بلدن لطفا ایده بدن

----------


## Ananas

فکر میکنم "عددی که به هیچ عدد اول قبل از خودش بخش پذیر نباشه اوله" یعنی مثلا لازم نیست بخش پذیری عددی رو به 6 حساب کنید چون با 2 و 3 امتحان میشه پس کلا هر عددی رو میشه به عامل های اول تجزیه کرد مثلا برای 24 مینویسیم 2*2*2*3 یا مثلا برای 50 می نویسیم 2*5*5 و مثلا برای 7 خود 7 رو می نویسیم راهشم اینه که اول تا جایی که میشه به 2 تقسیم کنیم بعد تا جاایی که میشه به 3 تقسیم کنیم بعد تا جایی که میشه به 5 و ... تمام اعداد اول قبل از اون عدد تا عددمون برسه به 1. به این کار میگن تجزیه به عامل های اول.

----------


## idea novin

#include <iostream>
using namespace std;
int main()
{int n,x=2,i,k;
cin>>n;
do{for (i=2,k=0;i<=x/2&&k==0;++i)
if(x%i==0)
++k;
if(k==0)
    cout << x;
x++;}
while(x<=n);
    return 0;}

این اعداد اول کوچکتر مساوی عددی رو که وارد کردی چاپ میکنه تغییراتش بدی درس میشه کارت

----------


## sajjad eshghi

منم این راه  به ذهنم اومد
#include < conio.h>
#include < iostream>
using namespace std;
int main()
{
    int i, j, n = 0, x;
    cout < "enter a number";
    cin >> x;
    for (i = 2; i <= x; i++)
    {
        n = 0;
        for (j = 1; j <= i; j++)
        {
            if (i % j == 0)
                n++;
        }
        if (n == 2)
            cout << i << '\t';
    }
    getchar();
    getchar();
}

----------


## Symbian Master

این برنامه رو در محیط Turbo C نوشتم. امیدوارم به درد دوستانی که در آینده به این تاپیک سر میزنن بخوره:

#include<iostream.h>
#include<conio.h>
 int main () {
 clrscr();
 int min, max, number, sum;
 cout << "Please enter 1st number: ";
 cin >> min;
 cout << "Please enter 2nd number: ";
 cin >> max;
 cout << "---------------------\nAdad aval bein "
 << min << " va " << max << ":\n";
 for (int j = min; j <= max; j++) {
 number = j;
 sum = 0;
 for (int i = 1; i <= number; i++) {
  if (number % i == 0)
  sum +=i;
 }
    if ((sum == number+1 || sum == number) && number > 0)
    cout << "[" << number << "] ";
 }
 getch();
 return 0;
 }

----------


## Symbian Master

این برنامه هم برای پیدا کردن اعداد تام بین 2 تا عدد ورودی. مثلاً بین 0 تا 30000 :#include<iostream.h>
#include<conio.h>
 int main () {
 clrscr();
 int min, max, number, sum;
 cout << "Please enter 1st number: ";
 cin >> min;
 cout << "Please enter 2nd number: ";
 cin >> max;
 cout << "---------------------\nAdad taam bein "
 << min << " va " << max << ":\n";
 for (int j = min; j <= max; j++) {
 number = j;
 sum = 0;
 for (int i = 1; i < number; i++) {
  if (number % i == 0)
  sum +=i;
 }
    if (sum == number && number != 0)
	cout << "[" << number << "] ";
 }
 getch();
 return 0;
 }

----------


## payam.r

سلام ببخشید من این کد رو برای نشان دادن تعداد اعداد اول قبل از n نوشتم ولی برا بعضی اعداد درست کار نمی کنه میشه راهنماییم کنید چرا با تشکر.

#include <iostream>
using namespace std;


int main() {
    int a,n,j=0;
        cin>>a;
        n=a;
switch(a){
 case 6: cout<<"3";
             break;
  case 5: cout<<"2";
                break;
   case 4: cout<<"2";
              break;
     case 3: cout<<"1";
                break;
      case 2: cout<<"0";
                break;
        case 1: cout<<"0";
                break;
         case 0: cout<<"0";
                break;
            default:
while(n>0){

                         if(n%6==1||n%6==5){
                         j+=1;
                         n-=1;
                        }else{
                            n-=1;
                        }
        }
            cout<<j+1;
        }
     
    return 0;
}

----------


## nahiid

سلام . براي به دست اوردن  اعداد اول بعد از n چه کدي بايد بنويسم 
لطفا راهنمايي کنييد

----------

