找到一个给定的素数在n素数,而无需使用一个检查素性任何函数 [英] Find n primes after a given prime number, without using any function that checks for primality

查看:95
本文介绍了找到一个给定的素数在n素数,而无需使用一个检查素性任何函数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何编写一个程序来求n指定次数后,质数?
例如100之后的第一个质数10,或1000之后的第一个25的素数。
编辑:
 下面是我的尝试。我得到的输出的方式,但我们可以做到这一点不使用任何素性测试功能?

 #包括LT&;&stdio.h中GT;
#包括LT&;&CONIO.H GT;
INT isprime(INT);
主要()
{
    诠释计数= 0,I;
    为(ⅰ= 100; 1 2;我+ +)
    {
        如果(isprime(i))的
        {
            的printf(%d个\\ N,I);
            算上++;
            如果(计数== 5)
                打破;
        }
    }
    残培();
}
INT isprime(int i)以
{
    INT C = 0,N;
    为(N = 1; N< = I / 2; N ++)
    {
        如果(我%N == 0)
        C ++;
    }
    如果(C == 1)
        返回1;
    其他
        返回0;
}


解决方案

当然。阅读有关筛埃拉托色尼的。相反,检查素性,你生成素数。

How to write a Program to find n primes after a given number? e.g. first 10 primes after 100, or first 25 primes after 1000. Edited: below is what I tried. I am getting output that way, but can we do it without using any primality-testing function?

#include<stdio.h>
#include<conio.h>
int isprime(int);
main()
{
    int count=0,i;
    for(i=100;1<2;i++)
    {
        if(isprime(i))
        {
            printf("%d\n",i);
            count++;
            if(count==5)
                break;
        }
    }
    getch();
}
int isprime(int i)
{
    int c=0,n;
    for(n=1;n<=i/2;n++)
    {
        if(i%n==0)
        c++;
    }
    if(c==1)
        return 1;
    else
        return 0;
}

解决方案

Sure. Read about the Sieve of Eratosthenes. Instead of checking for primality, you generate prime numbers.

这篇关于找到一个给定的素数在n素数,而无需使用一个检查素性任何函数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆