立方尾不变
有些数字的立方的末尾正好是该数字本身。
比如:1,4,5,6,9,24,25,…
请你计算一下,在10000以内的数字中(指该数字,并非它立方后的数值),符合这个特征的正整数一共有多少个。
请提交该整数,不要填写任何多余的内容。
分析:100000的立方后面15个0int肯定吃不消,unsigned long long 22位好像可以,不过既然只要尾数就对其每一步进行取模就可以得到正确答案。
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;//用int也行
bool btn(int n)
{
ll sum=1,temp=n;
int size=1;
while(temp>=1)
{
size*=10;
temp/=10;
}
for(int i=0;i<3;i++)
{
sum=(sum*n)%size;
}
if(sum==n) return true;
return false;
}
int main(){
int cnt=0;
for(int i=1;i<=10000;i++)
{
if(btn(i))
{
cnt++;
}
}
cout<<cnt;
return 0;
}
1
4
5
6
9
24
25
49
51
75
76
99
125
249
251
375
376
499
501
624
625
749
751
875
999
1249
3751
4375
4999
5001
5625
6249
8751
9375
9376
9999
共36个