PDA

View Full Version : سوال: پیدا کردن اعداد اول قبل از n در ++C



Aerox1
جمعه 04 آذر 1390, 14:18 عصر
سر بر همگی . این اولین پست و تاپیک من در این سایته .
سوال اینه که برنامه ای میخواد که عدد 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
جمعه 04 آذر 1390, 18:05 عصر
سورس تو خیلی پیچوندی

#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
جمعه 04 آذر 1390, 18:08 عصر
این سورس اعداد اول هست با یکم تغییر میتونی اعداد اول قبل اونو هم پیدا کنی

Aerox1
جمعه 04 آذر 1390, 22:17 عصر
با تشکر از پاسخگویی ولی سوال چیز دیگه ای میخواد ! پیدا کردن اعداد اول قبلش هم با یک حلقه for بدست میاد ولی مسئله اینجاست که همون اعداد اول قبل n رو ( مثلا a ) با تقسیم بر اعداد اول قبل خودش پیدا کنیم که کمی پیچ میخوره مسئله !

storm_saeed
شنبه 05 آذر 1390, 14:35 عصر
فکر نکنم با اعداد اول قبل خودش بشه حالا کسایی که بلدن لطفا ایده بدن

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

idea novin
پنج شنبه 17 آذر 1390, 15:56 عصر
#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
جمعه 08 آبان 1394, 21:30 عصر
منم این راه به ذهنم اومد

#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
جمعه 29 مرداد 1395, 12:14 عصر
این برنامه رو در محیط 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
جمعه 29 مرداد 1395, 15:18 عصر
این برنامه هم برای پیدا کردن اعداد تام بین 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
پنج شنبه 04 آذر 1395, 01:52 صبح
سلام ببخشید من این کد رو برای نشان دادن تعداد اعداد اول قبل از 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
پنج شنبه 24 اسفند 1396, 17:53 عصر
سلام . براي به دست اوردن اعداد اول بعد از n چه کدي بايد بنويسم
لطفا راهنمايي کنييد