C++作业7
2016-06-06 09:54
337 查看
一:特殊三位数
二:回文和素数
#include<iostream> using namespace std; int fact(int x) { int i=1,j; for(j=1;j<=x;j++) i=i*j; return i; } int main() { int a,b,c,n; n=100; while(n<1000) { a=n/100; b=(n/10)%10; c=n%10; if(n==fact(a)+fact(b)+fact(c)) cout<<n<<endl; n++; } return 0; }
二:回文和素数
#include<iostream> using namespace std; int isPrime(int n) { int i,j=1; for(i=2;i<n;i++) if(n%i==0) { j=0; break; } return j; } int isPalindrome(int n) { int m=0,u=0; u=n; while(n>0) { m=m*10+n%10; n=n/10; } if(u==m) return 1; else return 0; } int reversible(int n) { int m=0,u=0; u=n; while(n>0) { m=m*10+n%10; n=n/10; } return m; } int main() { int n; cout<<"300内的素数为"<<endl; { for(n=2;n<300;n++) if(isPrime(n)) cout<<n<<'\t'; cout<<endl; } cout<<"300内的回文数为"<<endl; { for(n=2;n<300;n++) if(isPalindrome(n)) cout<<n<<'\t'; cout<<endl; } cout<<"300内的回文素数为"<<endl; { for(n=2;n<300;n++) if(isPalindrome(n)&&isPrime(n)) cout<<n<<'\t'; cout<<endl; } cout<<"300内的可逆素数为"<<endl; { for(n=2;n<300;n++) if(isPrime(n)&&isPrime(reversible(n))) cout<<n<<'\t'; cout<<endl; } return 0; }