100以内的素数有25个,
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;

用C语言输出一下;

#include "stdafx.h"
#include<stdio.h>int main(){  int a;int i;int count=0; int isprime=1;  //a是素数 for(a=2;a<100;a++){for(i=2;i<a;i++){if(a%i==0){isprime=0;break;            }                   } if(isprime==1){count++;printf("%d\t ",a);  //水平制表符if(count%5==0){printf("\n");  //换行符           }}isprime=1;}  return 0;
}

根据素数定义直接来的判断是否是素数的算法;

bool isp(int n)
{
    for(int i = 2; i < n; i++)
    {
        if(n % i == 0) return false;
    }
    return true;
}

优化的方法;

int isPrime(int n)
{
    if (n <= 1)
    {
        return 0;
    }
    for (int i = 2; i * i <= n; i++)
    {
        if (n % i == 0)
        {
            return 0;
        }
    }
    return 1;
}

ACM里应该有这个;可能还有不同的写法;

用MFC看一下;

VC2012,单文档工程;全部的视类CPP代码;用两种判断都输出1-100的素数看一下;


// primeView.cpp : CprimeView 类的实现
//#include "stdafx.h"
// SHARED_HANDLERS 可以在实现预览、缩略图和搜索筛选器句柄的
// ATL 项目中进行定义,并允许与该项目共享文档代码。
#ifndef SHARED_HANDLERS
#include "prime.h"
#endif#include "primeDoc.h"
#include "primeView.h"#ifdef _DEBUG
#define new DEBUG_NEW
#endifbool isp(int );
int isPrime(int );// CprimeViewIMPLEMENT_DYNCREATE(CprimeView, CView)BEGIN_MESSAGE_MAP(CprimeView, CView)// 标准打印命令ON_COMMAND(ID_FILE_PRINT, &CView::OnFilePrint)ON_COMMAND(ID_FILE_PRINT_DIRECT, &CView::OnFilePrint)ON_COMMAND(ID_FILE_PRINT_PREVIEW, &CprimeView::OnFilePrintPreview)ON_WM_CONTEXTMENU()ON_WM_RBUTTONUP()
END_MESSAGE_MAP()// CprimeView 构造/析构CprimeView::CprimeView()
{// TODO: 在此处添加构造代码}CprimeView::~CprimeView()
{
}BOOL CprimeView::PreCreateWindow(CREATESTRUCT& cs)
{// TODO: 在此处通过修改//  CREATESTRUCT cs 来修改窗口类或样式return CView::PreCreateWindow(cs);
}// CprimeView 绘制void CprimeView::OnDraw(CDC* pDC)
{CprimeDoc* pDoc = GetDocument();ASSERT_VALID(pDoc);if (!pDoc)return;// TODO: 在此处为本机数据添加绘制代码CString str1;int row=0;int cnt=0;for (int i=2;i<100;i++){if(isp(i)){       cnt = cnt + 1;str1.Format(_T("%d"), i);pDC->TextOut(20+35*((cnt-1)%5), 20+row*30, str1);if( cnt%5==0){row=row+1;}          }}cnt = 0;row = 0;for (int i=2;i<100;i++){if(isPrime(i)==1){      cnt = cnt + 1;str1.Format(_T("%d"), i);pDC->TextOut(20+35*((cnt-1)%5), 200+row*30, str1);if( cnt%5==0){row=row+1;}         }}
}// CprimeView 打印void CprimeView::OnFilePrintPreview()
{
#ifndef SHARED_HANDLERSAFXPrintPreview(this);
#endif
}BOOL CprimeView::OnPreparePrinting(CPrintInfo* pInfo)
{// 默认准备return DoPreparePrinting(pInfo);
}void CprimeView::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{// TODO: 添加额外的打印前进行的初始化过程
}void CprimeView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{// TODO: 添加打印后进行的清理过程
}void CprimeView::OnRButtonUp(UINT /* nFlags */, CPoint point)
{ClientToScreen(&point);OnContextMenu(this, point);
}void CprimeView::OnContextMenu(CWnd* /* pWnd */, CPoint point)
{
#ifndef SHARED_HANDLERStheApp.GetContextMenuManager()->ShowPopupMenu(IDR_POPUP_EDIT, point.x, point.y, this, TRUE);
#endif
}// CprimeView 诊断#ifdef _DEBUG
void CprimeView::AssertValid() const
{CView::AssertValid();
}void CprimeView::Dump(CDumpContext& dc) const
{CView::Dump(dc);
}CprimeDoc* CprimeView::GetDocument() const // 非调试版本是内联的
{ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CprimeDoc)));return (CprimeDoc*)m_pDocument;
}
#endif //_DEBUG// CprimeView 消息处理程序bool isp(int n)
{for(int i = 2; i < n; i++){if(n % i == 0) return false;}return true;
}int isPrime(int n)
{if (n <= 1){return 0;}for (int i = 2; i * i <= n; i++){if (n % i == 0){return 0;}}return 1;
}

0-100之间的素数、判断素数的基本和优化方法相关推荐

  1. 求1到100之间的质数(素数)?

    求1到100之间的质数(素数) 用到知识:双层for循环,if判断 常识:2是最小的质数,质数的定义:除1和本身没有其他因数的数 思路:如何判断5是不是质数,用5分别对2,3,4取余,发现没有余数,说 ...

  2. 编写程序接收用户输入分数信息,如果分数在0—100之间,输出成绩。如果成绩不在该范围内,抛出异常信息,提示分数必须在0—100之间。

    功能:编写程序接收用户输入分数信息,如果分数在0-100之间,输出成绩.如果成绩不在该范围内,抛出异常信息,提示分数必须在0-100之间. 要求:使用自定义异常实现 思路:1.创建扫描器并录入分数:2 ...

  3. 0~100之间所有数字的累计求和结果.python

    #计算0~100之间所有数字的累计求和结果 #0.定义最终结果的变量 result = 0 #1.定义一个整数的变量记录循环的次数 i = 0 #2.开始循环 while i <= 100: r ...

  4. android随机数1 100,android 产生0~100之间的随机数

    //产生0~100之间的随机数 float a=(float) (Math.random()*100); //float数据小数点后保留两位小数 float numb= a; DecimalForma ...

  5. 在唱歌比赛中,有6名评委给选手打分,分数范围是[0 - 100]之间的整数。选手的最后得分为:去掉最高分、最低分后的4个评委的平均分

    import java.util.Random;public class 评委打分 {public static void main(String[] args) {//在唱歌比赛中,有6名评委给选手 ...

  6. 【python初学者日记】读入正整数n,生成并输出一个含有n个0~100之间的随机列表,求其平均值(保留2位小数)

    读入正整数n,生成并输出一个含有n个0~100之间的随机列表,求其平均值(保留2位小数) 问题分析 代码实现 问题分析 本题涉及了几个基础概念:循环.随机数.列表.代码比较简单,可以加深对这3个概念的 ...

  7. 5.练习:猜数字:随机生成[0,100]之间的随机数,让用户猜生成的数字,显示猜大了还是猜小了,如果猜对了,提示共猜了多少次???

    5.练习:猜数字:随机生成[0,100]之间的随机数,让用户猜生成的数字,显示猜大了还是猜小了,如果猜对了,提示共猜了多少次??? 学习:第7遍 1.随机生成[0,100]之间的随机数 让用户猜生成的 ...

  8. 小练习:评委打分--在唱歌比赛中,有6名评委给选手打分,分数范围是[0 - 100]之间的整数。选手的最后得分为:去掉最高分、最低分后的4个评委的平均分,请完成上述过程并计算出选手的得分。

    package day07.test;import java.util.Scanner;public class Test5 {public static void main(String[] arg ...

  9. html如何判断素数,判断素数.html

    Document // 判断一个随机数是不是素数 // 判断1000以内所有的素数 // for(var i=1;i<=1000;i++){ // var count=0; // for(var ...

  10. 每日一题——孪生素数对(教你如何高效判断素数,判断素数的全部方法)

    学习目标: 每天睡前是否感到浑浑噩噩,一天又在不知不觉中过去,回想我今天都干了什么呢? 啊~我这一天又什么也没干,好有罪恶感啊,不行,我明天一定要好好学算法(手动狗头). 明日复明日,明日何其多?不要 ...

最新文章

  1. java与js交互,相互调用传参
  2. php redbean update,redbeanphp和表前缀
  3. 震惊!这些喵星人竟然被集体包养!
  4. 每天一道LeetCode-----实现二叉搜索树的迭代器
  5. ajax的post方式传数组参数
  6. 数据包接收系列 — IP协议处理流程(二)
  7. 我对jeecg-boot项目的理解、使用心得和改进建议
  8. Django文档地址
  9. Linux服务器下安装ANSYS
  10. hive函数中的operators, UDF, UDAF, UDTF, PTF
  11. 电子表格计算机时间格式,在Excel表格中输入日期的五种方法与技巧
  12. hystrix实战--资源隔离技术简介
  13. 让大象飞中的工作法(一)
  14. 原型模型概述及说明情况
  15. 警惕:这本期刊已被剔除,EI期刊目录更新
  16. 东软大三上学期实训笔记-javase篇Day12
  17. KL,JS,Wasserstein距离
  18. 物流科技杂志物流科技杂志社物流科技编辑部2022年第11期目录
  19. 【从0到1搭建LoRa物联网】1、LoRa物联网的架构
  20. vue 绑定多个class 顺便带上三元运算 判断

热门文章

  1. Ubuntu16安装CUDA9.0+Anaconda+Tensorflow1.8GPU(2018.08.20最新)
  2. Windows XP硬盘安装Ubuntu 11.10双系统全程图解
  3. 华为ax3怎么接光纤sc接口_视频监控工程中使用光纤光缆注意事项有哪些?
  4. MySQL 高级 - 存储过程 - 函数
  5. Java的知识点25——程序、进程与线程 || 线程的创建和启动
  6. Java8新特性Stream
  7. 概率论与数理统计の笔记
  8. atoi()函数定义
  9. ubuntu改变@后面的主机名
  10. matlab基础(0)