zoukankan      html  css  js  c++  java
  • Prime Factory

    原题链接: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
    ",a);
                i++;
            }
        }
    }

    Solution10000331000037

  • 相关阅读:
    JAVAGUI设计步骤
    JAVA接口基础知识总结
    静态关键字static用法。
    JAVA面向对象的多态性
    java封装的概念
    多线程
    关于集合类间的区别
    JAVA——异常
    java——内部类
    Java——接口
  • 原文地址:https://www.cnblogs.com/wosun/p/11257036.html
Copyright © 2011-2022 走看看