• 庞果网-在线编程挑战 幸运数 简单数论.......


    #include <string>                                       
    #include <stdio.h>                                      
    #include <cmath>                                        
    #include <iostream>                                     
    using namespace std;                                    
    bool flag[800];                                         
    void primmake()          //使用筛选法构造素数表                               
    {                                                       
        memset(flag,0,sizeof(flag));                        
        flag[1]=1;                                          
        for(int i=2;i<=800;i++)                             
        {                                                   
            if(!flag[i]){                                   
                for(int j=2;i*j<=800;j++)flag[i*j]=1;       
            }                                               
        }                                                   
    }                                                       
    int sumdigit(int x){                                    
        int sum=0;                                          
        while(x){                                           
            sum+=x%10;                                      
            x/=10;                                          
        }                                                   
        return sum;                                         
    }                                                       
    int sqdigit(int x){                                     
        int sum=0;                                          
        while(x){                                           
            sum+=(x%10)*(x%10);                             
            x/=10;                                          
        }                                                   
        return sum;                                         
    }                                                       
    bool luck(int x){                                       
        int sum0=sumdigit(x);                               
        int sum1=sqdigit(x);                                
        if(!flag[sum0] && !flag[sum1])return 1;             
        return 0;                                           
    }                                                       
    int lucky(int x,int y) {                                
        int cnt=0;                                          
                                                            
        for(int i=x;i<=y;i++){                              
            if(luck(i))cnt++;                               
        }                                                   
        return cnt;                                         
    }                                                       
    //start 提示:自动阅卷起始唯一标识,请勿删除或增加。    
    int main()                                              
    {                                                       
        //main函数方便你自行测试,可不用完成                
        primmake();                                         
        cout<<lucky(1,20)<<endl;                            
        return 0;                                           
    }                                                       


  • 相关阅读:
    《道德经》全文
    mysql 服务启动后停止
    安装docker-compose
    金刚般若波罗蜜经
    elasticsearch reIndex
    【基础篇】1.vim复制黏贴跳转
    新事物如何持续性发展
    舒服的状态
    教父
    关于拖延
  • 原文地址:https://www.cnblogs.com/snake-hand/p/3151214.html
Copyright © 2020-2023  润新知