首页 > 其他 > 详细

Prime Factory

时间:2019-07-27 23:41:05      阅读:171      评论:0      收藏:0      [点我收藏+]

原题链接:http://www.wechall.net/challenge/training/prime_factory/index.php

技术分享图片

题目信息大概是:找到最开始的两个超过1百万的素数,而且它任意和为素数,你的solution是将两位素数拼起来提交

这里我们写一个程序来跑。。。

起先我想到的是任意两个加起来是素数

跑出来就

技术分享图片

上传上去就错的,后来看了许多wp,发现他们都写的很粗略

我仔细想了想,发现事情并没有那么简单

实际上他说的意思是所有数字单独加起来的sum是素数,比如1000211加起来是5就是素数

写了个c的程序,一跑就出来了

 

#include <stdio.h>
int isPrime(int i)
{
    int ret =1;
    int k;
    for (k=2;k<i-1;k++){
        if (i%k==0){
            ret =0;
            break;
        }
    }
    return ret;
}
int main(){
    int w,m,sum,k,i=0,a=1000000,b[12];
    while(i<2){
loop:
        a++;
        if(isPrime(a)){
            m=a;
            sum=0;
            if(a>1000000&&a<10000000) w=8;
            if(a>10000000&&a<100000000) w=9;
            if(a>100000000&&a<1000000000) w=10;
            if(a>1000000000&&a<10000000000) w=11;
            for(k=0;k<w-1;k++){
                b[k]=m%10;
                m=m/10;
            }    
            for(k=0;k<w-1;k++){
                sum=sum+b[k];
            }
            if(!isPrime(sum)) goto loop;
            printf("%d\n",a);
            i++;
        }
    }
}

 

技术分享图片

Solution10000331000037

 

Prime Factory

原文:https://www.cnblogs.com/wosun/p/11257036.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!