码迷,mamicode.com
首页 > 其他好文 > 详细

ACdream 1115 Salmon And Cat (找规律&&打表)

时间:2015-06-28 11:19:14      阅读:130      评论:0      收藏:0      [点我收藏+]

标签:

题目链接:传送门

题意:

一个数被认为是一个完美的数,只要需要满足以下的两个条件之一

1)x = 1 or 3

2)x = 2 + a*b + 2*a + 2*b; a,b都是完美的数。

分析:

x + 2 = (a + 2)*(b + 2)

由于x1=1,x2=3,所有的数都是由着两个数衍生而来。那么我们就可

以得出一个结论了,一个数x如果是完美的数,那么x = 3^p*5^q;

因此代码如下:

#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstring>
#include <queue>
#include <set>
#include <map>
using namespace std;

int main(){
    int n;
    while(~scanf("%d",&n)){
        n+=2;
        while(n%3==0) n/=3;
        while(n%5==0) n/=5;
        if(n!=1) puts("No");
        else puts("Yes");
    }
    return 0;
}


还可以打表把1e9以内的所有完美数打出来。

代码如下:

#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstring>
#include <queue>
#include <set>
#include <map>
using namespace std;

typedef long long LL;


LL a[140]={1,3,7,13,23,25,43,73,79,123,133,223,241,373,403,623,673,727,1123,1213,1873,2023,2185,3123,3373,3643,5623,6073,6559,9373,10123,10933,15623,16873,18223,19681,28123,30373,32803,46873,50623,54673,59047,78123,84373,91123,98413,140623,151873,164023,177145,234373,253123,273373,295243,390623,421873,455623,492073,531439,703123,759373,820123,885733,1171873,1265623,1366873,1476223,1594321,1953123,2109373,2278123,2460373,2657203,3515623,3796873,4100623,4428673,4782967,5859373,6328123,6834373,7381123,7971613,9765623,10546873,11390623,12301873,13286023,14348905,17578123,18984373,20503123,22143373,23914843,29296873,31640623,34171873,36905623,39858073,43046719,48828123,52734373,56953123,61509373,66430123,71744533,87890623,94921873,102515623,110716873,119574223,129140161,146484373,158203123,170859373,184528123,199290373,215233603,244140623,263671873,284765623,307546873,332150623,358722673,387420487,439453123,474609373,512578123,553584373,597871123,645700813,732421873,791015623,854296873,922640623,996451873,
};

int main(){
    int n;
    while(~scanf("%d",&n)){
        int ans = 0;
        for(int i=0;i<137;i++)
            if(a[i]==n) ans = 1;
        if(ans) puts("Yes");
        else puts("No");
    }
    return 0;
}


 

ACdream 1115 Salmon And Cat (找规律&&打表)

标签:

原文地址:http://blog.csdn.net/bigbigship/article/details/46669327

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!