61、亲和数
#include <iostream>
using namespace std;
int fun(int n){
int sum=0;
for(int i=1;i<n;i++){
if(n%i==0)
sum+=i;
}
return sum;
}
int main(){
int n,a,b;
while(cin>>n){
while(n--){
cin>>a>>b;
if((fun(a)==b)&&(fun(b)==a))
cout<<"YES"<<endl;
else
cout<<"NO"<<endl;
}
}
return 0;
}
62、分拆素数和
#include <iostream>
using namespace std;
int Issushu(int n){
if(n<2)
return 0;
if(n==2)
return 1;
for(int i=2;i<n;i++){
if(n%i==0)
return 0;
}
return 1;
}
int split(int n){
int count=0;
for(int i=1;i<n/2;i++){
if(Issushu(i)==1&&Issushu(n-i)==1)
count++;
}
return count;
}
int main(){
int m,n,res;
while(cin>>n){
res=0;
for(int i=0;i<n;i++){
cin>>m;
res=split(m);
cout<<res<<endl;
}
}
return 0;
}
63、哥德巴赫猜想
#include <iostream>
using namespace std;
int Issushu(int n){
if(n<2)
return 0;
if(n==2)
return 1;
for(int i=2;i<n;i++){
if(n%i==0)
return 0;
}
return 1;
}
int fun(int n){
for(int i=1;i<n;i++){
if(Issushu(i)==1&&Issushu(n-i)==1){
return i;
break;
}
}
return 0;
}
int main(){
int n,a,k;
while(cin>>n){
while(n--){
cin>>a;
k=fun(a);
cout<<k<<" "<<a-k<<endl;
}
}
return 0;
}
64、N的倍数
#include <iostream>
using namespace std;
int fun(int n){
int k=0,flag=0;
while(n>0){
k=n%10;
n=n/10;
if(k!=0&&k!=1){
return 1;
break;
}
}
return 0;
}
int main(){
int n,m;
while(cin>>n){
m=0;
for(int i=1;i<1000000;i++){
m=n*i;
if(fun(m)==0){
cout<<m<<endl;
break;
}
}
}
return 0;
}
65、求n天后的日期(一天一天地往上面加,不可图快、盲目)
#include <iostream>
using namespace std;
int rn(int year){
if(year%400==0||(year%4==0&&year%100!=0))
return 1;
else
return 0;
}
int month[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
int main(){
int year,month,day,n,y,m,d;
int i=1;
while(cin>>year>>month>>day>>n){
while(i<=n){
if(rn(year))
month[2]=29;
else
month[2]=28;
if(day+1<=month[month])
day++;
else if(month+1<=12){
month++;
day=1;
}else{
year++;
month=1;
day=1;
}
i++;
}
cout<<year<<" "<<month<<" "<<day<<endl;
}
return 0;
}
66、菱形输出
67、三角形的个数
#include <iostream>
using namespace std;
int IsTriangle(int a,int b,int c){
if(a+b>c&&a+c>b&&b+c>a)
return 1;
else
return 0;
}
int main(){
int n,count;
while(cin>>n){
count=0;
for(int i=1;i<n/2;i++){
for(int j=i+1;j<n;j++){
for(int k=j+1;k<n;k++){
if(IsTriangle(i,j,k)==1&&(i+j+k==n)){
count++;
}
}
}
}
cout<<count<<endl;
}
return 0;
}
68、素数
#include <iostream>
#include <bits/stdc++.h>
using namespace std;
int Issushu(int n){
if(n==0||n==1)
return 0;
if(n==2)
return 1;
/*对于n为较大数字时,效率很低,不建议使用
for(int i=2;i<n;i++){
if(n%i==0)
return 0;
}
*/
for(int i=2;i<(int)sqrt(n)+1;i++){
if(n%i==0)
return 0;
}
return 1;
}
int main(){
int m,n,count;
while(cin>>m>>n){
count=0;
for(int k=m;k<=n;k++){
if(Issushu(k)==1){
count++;
}
}
cout<<count<<endl;
}
return 0;
}
69、杨辉三角
#include <iostream>
using namespace std;
int main(){
int m,n;
int i,j;
int r,s;
int a[20][20]={0};
while(cin>>n){
while(n--){
cin>>m;
for(i=0;i<m;i++){
for(j=0;j<=i;j++){
if(i==j||j==0)
a[i][j]=1;
else
a[i][j]=a[i-1][j-1]+a[i-1][j];
}
}
for(r=0;r<m;r++){
for(s=0;s<=r;s++){
if(s==0)
cout<<a[r][s];
else
cout<<" "<<a[r][s];
}
cout<<endl;
}
}
}
return 0;
}
70、矩阵问题
#include <iostream>
using namespace std;
int main(){
int n;
int a[17][17];
while(cin>>n){
for(int i=0;i<=2*n;i++){
for(int j=0;j<=2*n;j++){
if(i==j||j==2*n-i){
a[i][j]=1;
}else if(i<j&&j<2*n-i){
a[i][j]=2;
}else if(i<j&&j>2*n-i){
a[i][j]=5;
}else if(j<i&&i<2*n-j){
a[i][j]=4;
}else if(j<i&&i>2*n-j){
a[i][j]=3;
}
}
}
for(int r=0;r<=2*n;r++){
for(int s=0;s<=2*n;s++){
if(s==0)
cout<<a[r][s];
else
cout<<" "<<a[r][s];
if(s==2*n)
cout<<endl;
}
}
}
return 0;
}