1. 程式人生 > >BUPT復試專題—Special 數(2017)

BUPT復試專題—Special 數(2017)

number don 包含 pan ace span data 機考 測試數據

題目描述

設一個正整數既是平方數乂是立方數時,稱為Special數。

輸入

輸入包含多組測試數據,笫1行輸入測試數據的組數,接下來在後續每行輸入n(n<=1000000000)

輸出

輸出1到n中包含的所有Special數個數

樣例輸入

2
1
64

樣例輸出

1
2

提示

打表即可

來源

2017機考A題

#include<stdio.h>
#include<string>
#include<string.h>
#include<iostream>
#include<map>
using
namespace std; struct num_ok { int number; int count; }nums[33]; int main() { freopen("23.out","w",stdout); int t,num=1,m,num_ok_num=0; cin>>t; map<int,int> donser; for(int i=1;i*i*i<=1000000000;i++) { donser[i*i*i]=-10086; } for(int
i=1;i*i<=1000000000;i++) { if(donser[i*i]==-10086) { nums[num_ok_num].count=num; nums[num_ok_num].number=i*i; num_ok_num++; num++; } } while(t--) { cin>>m; if(m<=1000000000&&m>887503681
) { cout<<"31"<<endl; continue; } for(int i=num_ok_num-1;i>=0;i--) { if(nums[i].number<=m) { cout<<nums[i].count<<endl; break; } } } return 0; }

BUPT復試專題—Special 數(2017)