首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么我的程序找不到10001号质数?[euler项目-问题7]

为什么我的程序找不到10001号质数?[euler项目-问题7]
EN

Stack Overflow用户
提问于 2015-01-27 16:29:30
回答 2查看 78关注 0票数 0

我的问题是我的程序找不到10001号质数。所以它永远不会停止,我仍然不知道10001的质数。我很乐意用我的执行来解决这个问题。谢谢您:)

代码语言:javascript
复制
public class problem7 {

    public static boolean sonuc=true;

    public static void asalmi(int j)
    {
        int counter=0;
        int asayac=0;

        for(int k=1;k<=j;k++)
        {
            if(j%k==0)
            {
                counter++;
            }
        }
        if(counter==2)
        {
            // Only factors are 1 and j, so j is prime
            System.out.println(j);
            asayac++;
            counter=0;
            if(asayac==10001)
            {
                System.out.println(j);
                sonuc=false;
            }
        }
    }

    public static void main(String[] args) 
    {
        int i=1;
        while(sonuc)
        {
            asalmi(i);
            i++;
        }
    }
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-01-27 16:38:27

每次调用asalmi时,都会将局部变量asayac设置为0。这应该是一个静态变量,而不是本地变量。

票数 2
EN

Stack Overflow用户

发布于 2015-03-09 19:24:48

查找10001素数的C程序

代码语言:javascript
复制
            #include<stdio.h>
            isPrime(int x){
                int i;
                for(i=2;i<=x/2;i++){
                    if(x%i==0) return 0;
                }
                return 1;
            }
            int main(){
                int n=3;
                int counter=1;
                while(counter!=10001){
                    if(isPrime(n)==1) counter++;
                    n=n+2; // possibility of next prime is by adding 2 to current 
                }
                printf("counter=%d\n",counter);
                printf("number is:%d\n",n-2); //-2 due to unwanted increment in loop

            }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28175253

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档