POJ1316 Self Numbers——筛素数的思想

来源:互联网 发布:劳丽诗的淘宝店 编辑:程序博客网 时间:2024/06/08 00:53

题目链接点击打开链接

题意说的很清楚,不再赘述。

思路:这道题用到筛素数的思想,只需把规则改一下即可。

目的:练手+熟悉复习筛素数。

AC代码

#include<iostream>#include<cstdio>#include<string>#include<cstring>#include<iomanip>#include<algorithm>#include<cmath>using namespace std;int vis[10005];int self[10005];int cnt_sum(int n){    int tmp=n;    int sum=0;    while(n>0)    {        sum+=n%10;        n/=10;    }    return sum+tmp;}int self_number(){    memset(vis,0,sizeof(vis));    int cnt=0;    for(int i=1; i<=10000; i++)    {        if(!vis[i])            self[cnt++]=i;        int tmp=i;        while(tmp<=10000)        {            vis[tmp]=1;            tmp=cnt_sum(tmp);        }    }    return cnt;}int main(){    int cnt=self_number();    for(int i=0;i<cnt;i++)         cout<<self[i]<<endl;    return 0;}


0 0
原创粉丝点击