HJ99 自守数
自守数_牛客题霸_牛客网 (nowcoder.com)
#include <iostream>
#include<cmath>
using namespace std;
bool Ending_Same(int a)
{
int a_a = a * a;
if (a_a == a)
return true;
int i = 1;
while (a_a != 0 && a_a/ (int)pow(10, i)!=0)//保证a*a有足够的位数
{
int end = a_a % (int)pow(10, i);//从后往前取,依次取1位,2位...
if (end == a)
return true;
i++;
}
return false;
}
int main() {
int n;
cin >> n;
int sum = 0;
for (int i = 0; i <= n; i++)
{
if (Ending_Same(i))
sum++;
}
cout << sum;
return 0;
}
OR86N 返回小于N的质数个数
#include <iostream>
using namespace std;
int Count(int a)
{
if(a==0||a==1)
return 0;
if(a==2)
return 1;
int sum = 1;
while(a>2)
{
int i=2;
for(i=2;i<a;i++)
{
if(a%i == 0)
break;
}
if(a==i)
sum++;
--a;
}
return sum;
}
int main() {
int n;
cin>>n;
cout<<Count(n);
return 0;
}