求最大素数

题目内容:

求n(n<=500)以内的10个最大素数及其和,并分别输出这10个最大素数及其和。n的值要求从键盘输入。

要求10个素数按从大到小的顺序输出。

程序运行结果示例:

Input n(n<=500):

270

269   263   257   251   241   239   233   229   227   223

sum=2432

输入提示: "Input n(n<=500):\n"

输入格式: "%d"

输出格式:

10个最大素数的输出格式:"%6d"

总和的输出格式:"\nsum=%d\n"

时间限制:500ms内存限制:32000kb

#include<stdio.h>
int main()
{
    int n,i,a=0,sum=0;
    printf( "Input n(n<=500):\n");
    scanf("%d",&n);
    for(;n>0;n--)
        {
        for(i=2;i<n;i++)
          {
          if(n%i==0)
          break;
          if(i==n-1)
            {
            printf("%6d",n);
            a++;
            sum+=n;
            }
          }
        if(a==10) break;
        }
    printf("\nsum=%d\n",sum);
    return 0;
}

时间: 2024-11-06 11:50:55

求最大素数的相关文章

POJ 3978 Primes(求范围素数个数)

http://poj.org/problem?id=3978 题意: 给你一个区间范围A和B,要你求出[A,B]内的素数个数.其中B<=100000. 分析: 首先我们求出2到10W的素数表,把每个素数按从小到大的顺序保存在prime数组中.然后我们用二分查找找到A的下界和B的上界,然后用上界-下界即为素数个数. 程序实现用了两种筛选法来求素数表.两种筛选法都是基于每个自然合数都可以分解为:最小素因子p*剩余部分q.且q>=p. 第一种方式是基本的筛选法,效率慢些,不过也趋近于线性了. 第二种

POJ1284---Primitive Roots(求原根个数, 欧拉函数)

Description We say that integer x, 0 < x < p, is a primitive root modulo odd prime p if and only if the set { (xi mod p) | 1 <= i <= p-1 } is equal to { 1, -, p-1 }. For example, the consecutive powers of 3 modulo 7 are 3, 2, 6, 4, 5, 1, and t

O(N)的素数筛选法和欧拉函数

首先,在谈到素数筛选法时,先涉及几个小知识点. 1.一个数是否为质数的判定. 质数,只有1和其本身才是其约数,所以我们判定一个数是否为质数,只需要判定2~(N - 1)中是否存在其约数即可,此种方法的时间复杂度为O(N),随着N的增加,效率依然很慢.这里有个O()的方法:对于一个合数,其必用一个约数(除1外)小于等于其平方根(可用反证法证明),所以我们只需要判断2-之间的数即可. bool is_prime(int num) { const int border = sqrt(num); for

欧拉函数+素数筛

欧拉函数,就是欧拉发现的一个关于求素数的的公式,然后我们编个函数实现这个公式. 欧拉发现求小于等于n的正整数中有多少个数与n互质可以用这个公式: euler(x)=x(1-1/p1)(1-1/p2)(1-1/p3)(1-1/p4)…(1-1/pn),其中p1,p2……pn为x的所有素因数,x是不为0的整数.euler(1)=1(唯一和1互质的数就是1本身). 欧拉公式的延伸:一个数的所有质因子之和是euler(n)*n/2. 其实直接看模板加注解想想就能看懂 筛选的原理就是找出n的因子,剔除含有

zoj 2526 反素数 附上个人对反素数性质的证明

反素数的定义:对于任何正整数,其约数个数记为,例如,如果某个正整数满足:对任意的正整 数,都有,那么称为反素数. 从反素数的定义中可以看出两个性质: (1)一个反素数的所有质因子必然是从2开始的连续若干个质数,因为反素数是保证约数个数为的这个数尽量小 (2)同样的道理,如果,那么必有 个人理解性证明: 对(1)假设不是从2开始,那么假设n的最小素因素是k,把k换成2,2的次数仍等于k的次数,得到N,可知,N<n,并且f(n)==f(N),与n是反素数矛盾 对(2)假设ti<tj   ti,tj

杭电(hdu)ACM 4548 美素数

美素数 Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others) Total Submission(s): 4482    Accepted Submission(s): 1524 Problem Description 小明对数的研究比較热爱,一谈到数.脑子里就涌现出好多数的问题,今天.小明想考考你对素数的认识. 问题是这种:一个十进制数.假设是素数,并且它的各位数字和也是素数,则称之

POJ1595_Prime Cuts【素数】【水题】

Prime Cuts Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 10464 Accepted: 3994 Description A prime number is a counting number (1, 2, 3, ...) that is evenly divisible only by 1 and itself. In this problem you are to write a program that w

POJ 1007 Difference Between Primes(线性筛法求N以内的素数表)

Difference Between Primes Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Description All you know Goldbach conjecture.That is to say, Every even integer greater than 2 can be expressed as the sum of two primes. Today, sk

csu 1030: 素数槽

 素数槽 Description 处于相邻的两个素数p和p + n之间的n - 1个连续的合数所组成的序列我们将其称为长度为n的素数槽.比如,?24, 25, 26, 27, 28?是处于素数23和素数29之间的一个长度为6的素数槽. 你的任务就是写一个程序来计算包括整数k的素数槽的长度.假设k本身就是素数,那么觉得包括k的素数槽的长度为0. Input 第一行是一个数字n,表示须要測试的数据的个数.后面有n行,每行是一个正整数k.k大于1而且小于或等于的第十万个素数(也就是1299709)