素数对

关于素数,素数是只能被1和自己整除的数。依据题意,要检查i和i+2是否同时为素数,用两个bool值标记,当两个bool值同时为true时,输出i和i+1。由于素数一定是奇数所以我加上了奇数的判断。
cpp
#include<bits/stdc++.h>
using namespace std;
int main(){
int n;
cin >> n;
bool found = false;//标记是否找到素数对
for(int i = 2;i <= n-2;i++){//遍历从2到n-2的所有数字
bool is1 = true,is2 = true;
if(i == 2) is1 = true;//检查是否为素数
else if(i % 2 == 0) is1 = true;
else{
for(int j = 3;j*j <= i;j += 2){
if(i%j == 0){
is1 = false;
break;
}
}
}
if(i + 2 == 2) is2 = true;//检查i+2是否为素数
else if((i+2)%2 == 0) is2 = false;
else{
for(int j = 3;j*j <= i + 2;j+=2){
if((i+2)%j == 0){
is2 = false;
break;
}
}
}
if(is1 && is2){cout << i << " " << i+2 << endl;found = true;}//如果两个数都是素数,则输出
}
if(!found) cout << "empty" << endl;//如果没有找到任何素数对
return 0;
}
不吉利日期

要判断当月十三号是否为周五,就相当于判断当月一号是否为周七。用while循环月份,在输入一月一号是周几后,判断w是否为7,是则输出;然后计算下月一号w的值,根据此月月份的天数计算。
cpp
#include<bits/stdc++.h>
using namespace std;
int main(){
int w,i = 1;
cin >> w;//每月一号是周几
while(i <= 12){
if(w == 7){cout << i << endl;}
if(i==1 || i==3 || i==5 || i==7 || i==8 || i==10 || i==12){//计算下个月一是周几
if((w+3)%7 == 0){w = 7;}
else w = (w+3)%7;
}
else if(i==4 || i==6 || i==9 || i==11){//计算下个月一是周几
if((w+2)%7 == 0){w = 7;}
else w = (w+2)%7;
}
i++;
}
return 0;
}