View Full Version : سوال: مشکل در <<تعداد اعداد اول قبل از عدد وارد شده>>
payam.r
دوشنبه 08 آذر 1395, 16:38 عصر
لطفا بگویید ایراد برنامه زیر چیست
شرح برنامه: عددی را از کاربر دریافت کرده وتعداد اعداد اول کوچکتر مساوی با آن را نمایش دهد
#include <iostream>
using namespace std;
int main() {
int x=1 , p=0 , n ,j=0;
cin>>n;
while (n>0)
{
while(x<=n)
{
if (n%x==0){
p=p+1;
x++;
}else{
x++;
}
}
if(p==2){
j++;
n--;
}else{
n--;
}
}
cout<<j;
return 0;
}
BeginnerProgrammer
دوشنبه 08 آذر 1395, 20:46 عصر
کدتون که خیلی مبهمه. بیشتر توضیح بدین، مثلا چرا دارین باقیمانده n به x رو چک می کنید؟
AliAskari1375
دوشنبه 08 آذر 1395, 22:43 عصر
سلام. این درست کار میکنه:
#include <iostream>
using namespace std;
int main() {
int n, x = 0;
cin >> n;
for(int i = 2; i <= n; i++)
{
bool b = true;
for(int j = 2; j <= i / 2; j++)
{
if(i % j == 0)
{
b = false;
break;
}
}
if(b)
x++;
}
cout << x << endl;
return 0;
}
a.r.khoshghalb
سه شنبه 09 آذر 1395, 13:07 عصر
لطفا بگویید ایراد برنامه زیر چیست
شرح برنامه: عددی را از کاربر دریافت کرده وتعداد اعداد اول کوچکتر مساوی با آن را نمایش دهد
#include <iostream>
using namespace std;
int main() {
int x=1 , p=0 , n ,j=0;
cin>>n;
while (n>0)
{
while(x<=n)
{
if (n%x==0){
p=p+1;
x++;
}else{
x++;
}
}
if(p==2){
j++;
n--;
}else{
n--;
}
}
cout<<j;
return 0;
}
بعد از خطی که توش while گذاشتین برای n>0 باید دوباره مقدار x رو مساوی 1 کنین
وگرنه از آخرین مقدار x ای که از حلقه پیش مونده ادامه میده و احتمالا برنامه تون n یا n-1 چاپ میکنه جواب رو...
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.