ポンゴネット-オンラインプログラミングは幸運数の簡単な数論に挑戦します......
3055 ワード
#include
#include
#include
#include
using namespace std;
bool flag[800];
void primmake() //
{
memset(flag,0,sizeof(flag));
flag[1]=1;
for(int i=2;i<=800;i++)
{
if(!flag[i]){
for(int j=2;i*j<=800;j++)flag[i*j]=1;
}
}
}
int sumdigit(int x){
int sum=0;
while(x){
sum+=x%10;
x/=10;
}
return sum;
}
int sqdigit(int x){
int sum=0;
while(x){
sum+=(x%10)*(x%10);
x/=10;
}
return sum;
}
bool luck(int x){
int sum0=sumdigit(x);
int sum1=sqdigit(x);
if(!flag[sum0] && !flag[sum1])return 1;
return 0;
}
int lucky(int x,int y) {
int cnt=0;
for(int i=x;i<=y;i++){
if(luck(i))cnt++;
}
return cnt;
}
//start : , 。
int main()
{
//main ,
primmake();
cout<