标签:style blog os io for 2014 问题 sp log
【题意简述】:中文题
【分析】:想法很简单,因为n的范围仅仅是 2<= n<=1000,所以根据题目描述,我只需要打出一个表即可解决问题,表里存放每一个S(i)的值,如果输入的n能与表中的值相对应,就不是不可摸数,相反便是不可摸数!
不过要注意这里边表的那个上线,我们可以试出来,最后我测试出的结果是5000左右。
#include<iostream>
using namespace std;
int a[5000]={0};
int main()
{
int n,i,j,m,flag=0;
a[0]=1;a[1]=1;
for(i=2;i<5000;i++)
{
a[i]=0;
for(j=1;j<=i/2;j++)
if(i%j==0)
a[i]+=j;
}
cin>>n;
while(n--)
{
cin>>m;
for(i=0;i<=1000;i++)
{
if(m==a[i])
{
flag=1;
break;
}
}
if(flag==0)
cout<<"yes"<<endl;
else
cout<<"no"<<endl;
}
return 0;
}标签:style blog os io for 2014 问题 sp log
原文地址:http://blog.csdn.net/u013749862/article/details/39055939