sgu 107 (简单数论)

给你一个n代表数字的位数,问你n位的数有多少的平方以987654321结尾。

一个数的平方的最后n位只与原数的最后n位有关。所以先打表出sqrt(987654321)-->999999999的个数分布。

 1 // File Name: 107.cpp
 2 // Author: Missa
 3 // Created Time: 2013/2/24 星期日 0:11:23
 4 
 5 #include<iostream>
 6 #include<cstdio>
 7 #include<cstring>
 8 #include<algorithm>
 9 #include<cmath>
10 #include<queue>
11 #include<stack>
12 #include<string>
13 #include<vector>
14 #include<cstdlib>
15 #include<map>
16 #include<set>
17 using namespace std;
18 #define CL(x,v) memset(x,v,sizeof(x));
19 #define R(i,st,en) for(int i=st;i<en;i++)
20 
21 int n;
22 
23 int main()
24 {
25     //for(long long i=sqrt(987654321.0);i<=999999999;++i)
26       //  if( i*i%1000000000 == 987654321 )
27         //    printf("%d\n",i);
28     
29     while(~scanf("%d",&n))
30     {
31         if(n<=8) puts("0");
32         else if(n==9) puts("8");
33         else
34         {
35             printf("72");
36             for(int i=10;i<n;i++)
37                 printf("0");
38             puts("");
39         }
40     }
41     return 0;
42 }

 

posted @ 2013-02-24 00:32  Missa  阅读(382)  评论(0编辑  收藏  举报