0-100之间的素数、判断素数的基本和优化方法
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到100之间的质数(素数)?
求1到100之间的质数(素数) 用到知识:双层for循环,if判断 常识:2是最小的质数,质数的定义:除1和本身没有其他因数的数 思路:如何判断5是不是质数,用5分别对2,3,4取余,发现没有余数,说 ...
- 编写程序接收用户输入分数信息,如果分数在0—100之间,输出成绩。如果成绩不在该范围内,抛出异常信息,提示分数必须在0—100之间。
功能:编写程序接收用户输入分数信息,如果分数在0-100之间,输出成绩.如果成绩不在该范围内,抛出异常信息,提示分数必须在0-100之间. 要求:使用自定义异常实现 思路:1.创建扫描器并录入分数:2 ...
- 0~100之间所有数字的累计求和结果.python
#计算0~100之间所有数字的累计求和结果 #0.定义最终结果的变量 result = 0 #1.定义一个整数的变量记录循环的次数 i = 0 #2.开始循环 while i <= 100: r ...
- android随机数1 100,android 产生0~100之间的随机数
//产生0~100之间的随机数 float a=(float) (Math.random()*100); //float数据小数点后保留两位小数 float numb= a; DecimalForma ...
- 在唱歌比赛中,有6名评委给选手打分,分数范围是[0 - 100]之间的整数。选手的最后得分为:去掉最高分、最低分后的4个评委的平均分
import java.util.Random;public class 评委打分 {public static void main(String[] args) {//在唱歌比赛中,有6名评委给选手 ...
- 【python初学者日记】读入正整数n,生成并输出一个含有n个0~100之间的随机列表,求其平均值(保留2位小数)
读入正整数n,生成并输出一个含有n个0~100之间的随机列表,求其平均值(保留2位小数) 问题分析 代码实现 问题分析 本题涉及了几个基础概念:循环.随机数.列表.代码比较简单,可以加深对这3个概念的 ...
- 5.练习:猜数字:随机生成[0,100]之间的随机数,让用户猜生成的数字,显示猜大了还是猜小了,如果猜对了,提示共猜了多少次???
5.练习:猜数字:随机生成[0,100]之间的随机数,让用户猜生成的数字,显示猜大了还是猜小了,如果猜对了,提示共猜了多少次??? 学习:第7遍 1.随机生成[0,100]之间的随机数 让用户猜生成的 ...
- 小练习:评委打分--在唱歌比赛中,有6名评委给选手打分,分数范围是[0 - 100]之间的整数。选手的最后得分为:去掉最高分、最低分后的4个评委的平均分,请完成上述过程并计算出选手的得分。
package day07.test;import java.util.Scanner;public class Test5 {public static void main(String[] arg ...
- html如何判断素数,判断素数.html
Document // 判断一个随机数是不是素数 // 判断1000以内所有的素数 // for(var i=1;i<=1000;i++){ // var count=0; // for(var ...
- 每日一题——孪生素数对(教你如何高效判断素数,判断素数的全部方法)
学习目标: 每天睡前是否感到浑浑噩噩,一天又在不知不觉中过去,回想我今天都干了什么呢? 啊~我这一天又什么也没干,好有罪恶感啊,不行,我明天一定要好好学算法(手动狗头). 明日复明日,明日何其多?不要 ...
最新文章
- java与js交互,相互调用传参
- php redbean update,redbeanphp和表前缀
- 震惊!这些喵星人竟然被集体包养!
- 每天一道LeetCode-----实现二叉搜索树的迭代器
- ajax的post方式传数组参数
- 数据包接收系列 — IP协议处理流程(二)
- 我对jeecg-boot项目的理解、使用心得和改进建议
- Django文档地址
- Linux服务器下安装ANSYS
- hive函数中的operators, UDF, UDAF, UDTF, PTF
- 电子表格计算机时间格式,在Excel表格中输入日期的五种方法与技巧
- hystrix实战--资源隔离技术简介
- 让大象飞中的工作法(一)
- 原型模型概述及说明情况
- 警惕:这本期刊已被剔除,EI期刊目录更新
- 东软大三上学期实训笔记-javase篇Day12
- KL,JS,Wasserstein距离
- 物流科技杂志物流科技杂志社物流科技编辑部2022年第11期目录
- 【从0到1搭建LoRa物联网】1、LoRa物联网的架构
- vue 绑定多个class 顺便带上三元运算 判断
热门文章
- Ubuntu16安装CUDA9.0+Anaconda+Tensorflow1.8GPU(2018.08.20最新)
- Windows XP硬盘安装Ubuntu 11.10双系统全程图解
- 华为ax3怎么接光纤sc接口_视频监控工程中使用光纤光缆注意事项有哪些?
- MySQL 高级 - 存储过程 - 函数
- Java的知识点25——程序、进程与线程 || 线程的创建和启动
- Java8新特性Stream
- 概率论与数理统计の笔记
- atoi()函数定义
- ubuntu改变@后面的主机名
- matlab基础(0)