PDA

نسخه کامل مشاهده نسخه کامل : سلام بچه ها میشه به این سوالم جواب بدین



siavashngd
22-10-2008, 17:55
سلام بچه ها میشه به این سوالم جواب بدین
من برنامه زیر رو نوشتم ولی برای عدد های بزرگ این برنامه جواب نمیده چه کار میتونم بکنم؟





#include<iostream.h>


#include<conio.h>
#include<math.h>
int main()
{
int n,b,c=0,t=0,s=0,na=0,t0=0,na1=0;
cout<<"Adade avale morede nazar ra vared konid\n";
cin>>n;
for (int i=2; i<n ; i++){
b=n%i;
if(b==0) c=c+1;
}
if(c==0){ cout<<"\nrishe haye aval=\n";for (int a=2;a<n-1;a++){
for (int q=1;q<n-1;q++){
t0=pow(a,q);
t=(t0-1);
s=t%n;
na1=pow(a,n-1);
na=na1-1; }
if(na%n==0) if(s!=0) cout<<a<<"\n";} }

else{ cout<<"In adad ke aval nist !!!";}
cout<<"\n ***Created by Siavash Naghdalikhani***";
getch();
}

eng.j.mehrdad
22-10-2008, 18:25
متغیر های t0 , s , na , na 1 ,t سر ریز میکنن ، شما داری برای مثال برای عدد 11 ، 10^10 رو تو t0 میریزی! خب نمیشه

راههایی که در اختیار داری:

- بتونی با آرایه ها کار کنی و اعداد بزرگ رو تو آرایه ها نگه داری
- بتونی با malloc یه متغیر داینامیک بسیار بزرگ ایجاد کنی
- راه دیگه ای برای محاسبه اش بیابی