100以内素数

方法一: 简便列举法

#include<iostream>
#include<stdio.h>
using namespace std;
int main()
{
int i,j,k;
printf("2 3 5 ");//我们知道2,3,5,是素数,之后同时满足%后!= 0即可
for(i=5;i<=100;i++)
{
if(i%2!=0&&i%3!=0&&i%5!=0)
printf("%d ",i);
}
printf("\n");
return 0;
}

方法二(设置标志变量flag)

#include<stdio.h>
#include<math.h>

int main()
{
int ss=2;
int i,flag;//flag标记素数
for(ss;ss<=100;ss++)
{
flag=1;
for(i=2;i<=sqrt(ss);i++)
{
if(ss%i==0)
{
flag=0;
break;
}
}
if(flag)
{
printf("%d ",ss);
}
}
return 0;
}

方法三 双重循环

#include<stdio.h>
#include<math.h>

int main()
{
int i,ss=2;
for(ss;ss<=100;ss++)//第一层for循环
{
int k=sqrt(ss);
for(i=2;i<=k;i++)//第二层for循环在判断某数n是否为素数时,
//不需要从2一直除到n,只需要从2除到sqrt(n)
{
if(ss%i==0)
{
break;
}
}
if(i>k) /*如果2号for循环结束时,if语句从来没执行,
那么i的值肯定大 于sqrt(number),
所以用这个表达式来判断是否为素数*/
printf("%d ",ss);
}

printf("\n"); return 0;}

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

100以内素数的相关文章

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

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

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

汇编语言-判断素数:找出前100以内的素数

1. 题目:找出前100以内素数. 2. 要求:将前100以内素数找出并显示值,要求每行显示5个素数. 先列出求100以内素数的C++代码 然后根据C++代码写汇编代码,相对来说比较容易. 1 //The program is to find the primes from 1 to 100 with C++ 2 //By Karllen 3 //time: 05/19/2014 4 5 #include <iostream> 6 int main(void) 7 { 8 9 int numb

实现100以内的素数输出(Python与C++对比)

今天从链接http://www.2cto.com/kf/201302/187699.html中看到了Python实现100以内的素数输出的算法,颇受感触.尤其是被其中的Python的列表生成器的使用方式帅到了! 看完Python的算法实现之后,先是回到老本行用C++实现了一遍,通过对比,你就可以发现Python真的是太简洁了!!! 1 /* 2 题目:100以内的素数输出算法验证 3 时间:2015年9月11日 4 作者:LeonWen 5 */ 6 7 #include "stdafx.h&q

打印100以内的素数,并求和

//打印100以内的素数,并求和 int sum = 0;//定义和的初始值为0 for (int i = 1; i <= 100; i++) { int count = 0;//定义一个数被整除的次数的初始值为0 for (int k = 1; k <= i; k++) { if (i % k == 0)//变量i被整除的时候 { count++; } } if(count==2)//只有被整除两次才是素数 { Console.Write(i+"\t"); sum +=

判断素数和输出100以内的素数

判断素数 public class Au { public static void main(String[] args) { // TODO Auto-generated method stub Scanner in = new Scanner(System.in); int n = in.nextInt(); int isprime = 1; for(int i=2; i<n; i++){ if(n%i == 0){ isprime = 0; break; } } if(isprime ==

用筛选法求100以内的素数(数组)

用筛选法求100以内的素数,要求使用数组. #include "stdafx.h" #include<iostream> using namespace std; int _tmain(int argc, _TCHAR* argv[]) { int a[100],i,b[100],j,n=0;     //数组a[100]来放用于判断的数,数组b[100]来放素数 for(i=0;i<100;i++)       //注意这里i不能从1开始,因为数组a的首位是a[0]

求解100以内的所有素数(问题来自PythonTip)

求解100以内的所有素数 (AC/Submit)Ratio(4615|22542)20.47% 描述: 输出100以内的所有素数,素数之间以一个空格区分(注意,最后一个数字之后不能有空格). a=[2] for i in range(3,101): flag=0 for j in range(2,i): if(i%j==0): flag=1 if(flag==0): a.append(i) print(' '.join(map(str,a))) //语句内得加一个括号,切记 原文地址:https

素数打表——找出1~100以内的素数

素数筛选法: #include <iostream> using namespace std; //素数打表模板 bool is_prime[100]; int main() { for(int i = 2;i<100;i++) { is_prime[i] = 1; } for(int i=2;i*i<100;i++){ if(is_prime[i]){ for(int j=i*i;j<100;j+=i){ is_prime[j] = 0; } } } //枚举1~100以内