求n之内素数

题目描述

用筛法求之N内的素数。

输入

N

输出

0~N的素数

样例输入

100

样例输出

2
3
5
7
11
13
17
19
23
29
31
37
41
43
47
53
59
61
67
71
73
79
83
89
97

提示

数组大小动态定义?函数?

来源

#include <stdio.h>

int main()

{

    int n;

    int i,j;

    int o;

    scanf("%d",&n);

    for(i=2;i<n;i++)

    {

        o=1;

        for(j=2;j<i;j++)

        {

            if(i%j==0)o=0;

        }

        if(o==1) printf("%d\n",i);

    }

    return 0;

}

时间: 2024-11-09 10:36:10

求n之内素数的相关文章

求100之内的素数

题目:求100之内的素数 程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除, 则表明此数不是素数,反之是素数. 1 package com.li.FiftyAlgorthm; 2 3 /** 4 * 题目:判断101-200之间有多少个素数,并输出所有素数. 5 * 程序分析:判断素数的方法:用一个数分别去除2得到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数. 6 * @author yejin 7 */ 8 public class Prime

Ruby、PHP与SHELL中求50之内的素数方法

求50之内的素数,ruby的代码如下: #encoding:utf-8 #求50以内的素数(注意数字中..与...的区别) for i in 2..50     f=true #起始假定每个数都是素数     for p in 2...i #比自身小的正整数(1和自身除外) if i%p==0 #如果能整除 f=!f #那么这个数不是素数 break #并且跳出这层循环         end # if 结束     end #内层循环结束     print i," " if f #

求100以内素数的5中基本方法及其优化

求100以内素数的5中基本方法及其优化方法1 基本做法 错解比较:进入了小循环:有时加pass也可以.错解:这里的print也同样注意不要写到循环内. 注释:1.两种条件运用:为合数.2.以上错误点.方法二 注释:1.条件运用,质数除了2都是奇数,因为偶数都能被除了自身外的2整除.改进自12.偶数除了2都不是质数.3.第二个for写的是到开方的奇数.4.奇数含有质数和非质数.偶数除了2一定不是质数.所以先剥离了偶数. 方法三:使用列表 注释:1.break continue pass2.质数i依

用算法求N(N&gt;=3)之内素数的个数

首先,我们谈一下素数的定义,什么是素数?除了1和它本身外,不能被其他自然数整除(除0以外)的数 称之为素数(质数):否则称为合数. 根据素数的定义,在解决这个问题上,一开始我想到的方法是从3到N之间每个奇数进行遍历,然后再按照素数的定义去逐个除以3到 根号N之间的奇数,就可以计算素数的个数了. 于是便编写了下面的代码: (代码是用C++编写的) #include<iostream> #include <time.h> using namespace std; #define N 1

关于求N以内素数的python实现以及优化方法

大纲: 摘要 一.素数的定义 二.N以内素数常用实现方法 三.优化方法 原理层面 代码层面 range和xrange while 1和while True真的重要吗 摘要 本文主要是参考<编程珠玑-续订版>第一章关于求素数的解释,描述素数的定义,以及N以内素数的常用求解方法,最后一步步给出优化方法.代码用python实现两个优化方法,并给出原理层面和代码层面的分析.其中比较有意思的是,最后的部分,最开始代码写的只是考虑功能实现,而没有考虑怎样优化,最后的结果却大跌眼镜.反思之后,发现代码中的问

Java简单算法--求100以内素数

package cn.magicdu.algorithm; /** * 打印素数 * * @author xiaoduc * */ public class Prim { public static void main(String[] args) { for(int i=1;i<=100;i++){ if(isPrime(i)){ System.out.println(i); } } } /** * 判断是否是素数 * @param num * @return */ private stati

求质数(素数)

我计算了一下10以内的素数,控制台打印如图: public static void main(String[] args) { System.out.println("10以内的素数是:"); for (int i = 0; i <= 10; i++) { if (isSuShu(i)) { System.out.println(i + "是素数"); } } } 判断是否是素数的方法: public static boolean isSuShu(int n)

筛法求1000000以内素数个数---时间复杂度为o(n)

这样做倒是挺简单的,怎么容易怎么做 #include<stdio.h> #include<string.h> #define maxn 1000000 int isprime[maxn+10]; int prime[maxn/10]; int count; int n; int main() { while(scanf("%d",&n)!=EOF) { count=0; for(int i=0;i<=maxn+10;i++) isprime[i]=

写程序求素数的比较快的方法

今天在百度知道看见有人求算100000之内素数的方法,看了一下回帖,发现都是做C1时用烂的方法,即两个for循环,复杂度为power(n,1.5): 但是突然想到一种优化: public static void main(String[] args){    int[] r = new int[10000];  int num=0;  int count = 0;    for(int i=2;i<100000;i++){   boolean is = true;   if(num==0){