PDA

View Full Version : توابع



5hahab
پنج شنبه 05 دی 1392, 20:24 عصر
الف) تابعی به نام isPrime بنویسید که یک عدد صحیح و مثبت را به عنوان ورودی گرفته ، در صورتی‌ که عدد اول باشد خروجی ۱ و در صورتی‌ که اول نباشد خروجی صفر را برگرداند.
ب) تابعی به نام isPalindrome بنویسید که یک عدد صحیح و مثبت را از ورودی گرفته در صورتی‌ که عدد ورودی متقارن باشد مقدار ۱ و در غیر این صورت مقدار ۰ را برگرداند.
پ) تابعی به نام isPrimePalindromeبنویسید که یک عدد صحیح و مثبت را از ورودی گرفته در صورتی‌ که عدد اول‌متقارن باشد عدد ۱ و در غیر این صورت ۰ را برگرداند(برای این منظر میتوانید از توابع تعریف شده در قسم الف و ب استفاده کنید.)
ت) در main برنامه خود یک عدد صحیح و مثبت را از ورودی خوانده و با استفاده از توابع بالا تعیین کند آیا عدد اول متقارن است یا نه؟

مشکلش کجاست که جواب غلط میده بهم ؟

#include <iostream>
#include <cstdlib>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
using namespace std;
int isPrime(int);
int isPalindrome(int);
int isPrimePalindrome(int);
int main()
{int n;
do{cout<<"Input n:";
cin>>n;}while(n<=0);
if(isPrimePalindrome(n)==1)
cout<<"Yes";
else
cout<<"NO";
system("PAUSE");
return 0;
}
int isPrime(int)
{int n,i,divcount;
for(i=1;i<=n;i++)
if(n%i==0)
divcount++;
if(divcount==2)
return 1;
else
return 0;
}
int isPalindrome(int)
{int n,temp,m;
temp=n;
m=0;
while(n!=0)
{m=m*10+n%10;
n/=10;
}
if(temp==m)
return 1;
else
return 0;
}
int isPrimePalindrome(int)
{ int n;
if(isPrime(n)==0 || isPalindrome(n)==0 )
return 0;
else
return 1;
}