zoukankan      html  css  js  c++  java
  • hdu2302(枚举,大数取模)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2303

    题意:给出两个数k, l(4<= k <= 1e100, 2<=l<=1e6);其中k是两个素数的乘积,问k是否存在严格小于l的因子,若有,输出 BAD 该因子,反之输出GOOD;

    思路:

    先1e6内素数打表,再枚举一个因子,判断因子用大数取模;

    代码:

     1 #include <iostream>
     2 #include <stdio.h>
     3 #include <string.h>
     4 #define MAXN 105
     5 #define INF 1000010
     6 using namespace std;
     7 
     8 int l, prime[INF], vis[INF];
     9 char s[MAXN];
    10 
    11 void get_prime(){
    12     int k=0;
    13     for(int i=2; i<INF; i++){
    14         if(!vis[i]){
    15             prime[k++]=i;
    16             for(int j=2; i*j<INF; j++){
    17                 vis[i*j]=1;
    18             }
    19         }
    20     }
    21 }
    22 
    23 //**大数取模,(a+b)%m=a%m+b%m, (a*b)%m=(a%m*b%m)%m;
    24 int mod(int m){
    25     int count=1, ans=0;
    26     for(int i=strlen(s)-1; i>=0; i--){
    27         int gg=(s[i]-'0')*count;
    28         ans=(ans+gg)%m;
    29         count=count*10%m;
    30     }
    31     if(ans==0){
    32         return 1;
    33     }else{
    34         return 0;
    35     }
    36 }
    37 
    38 int main(void){
    39     get_prime();
    40     while(scanf("%s%d", s, &l)){
    41         if(s[0]=='0'&&l==0){
    42             return 0;
    43         }else{
    44             int flag=0;
    45             for(int i=0; prime[i]<l; i++){
    46                 flag=mod(prime[i]);
    47                 if(flag){
    48                     printf("BAD %d
    ", prime[i]);
    49                     break;
    50                 }
    51             }
    52             if(flag){
    53                 continue;
    54             }
    55             printf("GOOD
    ");
    56         }
    57     }
    58     return 0;
    59 }
  • 相关阅读:
    攻克python3-进程
    攻克python3-线程
    攻克python3-socket
    攻克python3-面向对象
    攻克python3-装饰器
    攻克python3-函数
    攻克python3-文件操作
    算法基础
    MongoDB存储基础教程
    Python操作Excle
  • 原文地址:https://www.cnblogs.com/geloutingyu/p/6076869.html
Copyright © 2011-2022 走看看