晓轩

博客园 首页 联系 订阅 管理

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;

const int SIZE=1000002;
int H[SIZE];

void table(void)
{
 memset(H,0,sizeof(H));
 int i,j,mul,cnt=0;
 for(i=5;i<SIZE;i+=4)
 {
  for(j=5;j<SIZE;j+=4)
  {
   mul=i*j;
   if(mul>=SIZE)
    break;
   if(0==H[i]&&0==H[j])
   {
    H[mul]=1;
   }
   else
   {
    H[mul]=-1;
   }
  }
 }
 for(i=5;i<SIZE;i++)
 {
  if(H[i]==1)
   cnt+=1;
  H[i]=cnt;
 }
}

int main()
{
 int n;
 table();
 while(cin>>n&&n)
 {
  cout<<n<<" "<<H[n]<<endl;
 }
 return 0;
}

posted on 2013-08-17 18:20  晓轩  阅读(251)  评论(0)    收藏  举报