求100以内的素数(微机原理大作业)

一、问题描述

求 100 以内的素数。

(1)以十进制输出这些素数

(2)统计这些素数的个数,以十进制形式输出。

(3)计算这些素数之和,以十进制形式输出。

(4)数据的输入和结果的输出都要有必要的提示,且提示独占一行。

(5)要使用到子程序。

二、问题分析

1.什么是素数?

在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数。

2.100以内的素数怎么求?

双层循环嵌套

3.求个数及和

其他高级语言算法

public static void main(String[] args) {
int and=0;
int num=0;
for(int i=2;i<100;i++){
int j=2;
for(;j<i;j++){
if(i%j==0){
break;
}
}
if(i==j){
and+=i;
num++;
//输出
System.out.print(i+" ");
}
}
//输出
System.out.print("\nand:"+and);
System.out.println("\tnum:"+num);
}

运行截图:

4.十进制转换

int var1=1060
int a[4]
int i=0
do
a[i]=var1%10
var1=var1/10
if(var1==0)break
while(true)

三、源程序代码清单

data segment
text0 DB 'Prime numbers within 100 are:',0DH,0AH,'$'
text1 DB 0DH,0AH,'Number of prime numbers within 100:',0DH,0AH,'$'
text2 DB 0DH,0AH,'Sum of prime numbers within 100:',0DH,0AH,'$'
num DB 0
plus dw 0
var1 DB 0,4 dup(0)
data ends
assume cs:code,ds:data
code segment
start:
;;;(开始);;;;;;;;;;一定得加这两句
mov ax,data
mov ds,ax
;;;(结束);;;;;;;;;;一定得加这两句
mov dx,OFFSET text0
MOV AH,9H
INT 21H ;输出提示text0
;mov num,0
;mov plus,0
mov cx,99
aa1: ;第一层循环
mov ax,101
sub ax,cx
push cx
call demo1 ;判断ax是否为素数
pop cx
loop aa1
;;;(开始);;;;;;;;;;输出提示text
mov dx,offset text1
mov ah,9
int 21h
mov dl,num
mov dh,0
call demo2
mov dx,offset text2
mov ah,9
int 21h
mov dx,plus
call demo2
;;;(开始);;;;;;;;;;输出提示text
mov ax,4c00h
int 21h demo1 proc ;判断ax是否为素数
mov cx,ax ;ax=2,
dec cx ;自减指令,cx=1
aa2: ;第二层循环
push ax
div cl ;ax%cl=ah
cmp ah,0
pop ax
je aa2end ;if(i%j==0)break
loop aa2
aa2end:
cmp cx,1
jne demo1end
inc num ;自增
mov ah,0
add plus,ax
mov dx,ax
call demo2 ;输出多位数
demo1end:
ret
demo1 endp demo2 proc ;输出多位数
push dx ;mov dx,1060
mov ax,dx
mov dx,0
;mov var1,0
again:
mov bx,10
div bx
inc var1[0]
mov bl,var1
mov bh,0
mov var1[bx],dl
mov dx,0
cmp ax,0
jne again
again1:
mov bl,var1
mov bh,0
mov dl,var1[bx]
add dl,30h
mov ah,2
int 21h dec var1
mov al,var1
cmp al,0
jne again1
mov dl,9H ;制表符
mov ah,2
int 21h pop dx
ret
demo2 endp code ends
end start

四、运行结果与分析

五、心得体会

1.1060使用div时注意数值类型为word

用div bx;dxax/bx->ax,dxax%bx->dx

2.一定不能漏了这两句,不然输出内容前面会好多乱码

mov ax,data

mov ds,ax

3.汉字提示输出会乱码

ps:看看有没有银抄作业/斜眼笑

【汇编】求100以内的素数asm的更多相关文章

  1. Python练习题 026:求100以内的素数

    [Python练习题 026] 求100以内的素数. ------------------------------------------------- 奇怪,求解素数的题,之前不是做过了吗?难道是想 ...

  2. 斐波那契数列(递归)&求100以内的素数

    Java 5 添加了 java.util.Scanner 类,这是一个用于扫描输入文本的新的实用程序.它是以 前的 StringTokenizer 和 Matcher 类之间的某种结合.由于任何数据都 ...

  3. js求100以内的素数

    //打印2~100之间的数 ; i< ; i++){ var a = true; ; j < i; j++){ //判断i能否被j整除 ){ //能被整除则说明不是素数,修改布尔值为fal ...

  4. Python3练习题 026:求100以内的素数

    p = [i for i in range(2,100)] #建立2-99的列表 for i in range(3,100): #1和2都不用判断,从3开始     for j in range(2, ...

  5. python 求100以内所有素数

    def prime(num): for i in range(2, num): if num % i == 0: # 能被1之外的任意个数整除的即为非素数,返回False,将被filter函数过滤掉 ...

  6. 求出100以内的素数(java实现)

    j package test1; //2018/11/30 //求100以内的所有素数 public class Main10 { public static void main(String[] a ...

  7. python求100以内素数

    python求100以内素数之和 from math import sqrt # 使用isPrime函数 def isPrime(n): if n <= 1: return False for ...

  8. Python3求m以内的素数、求m个数中最小的n个数

    [本文出自天外归云的博客园] 题1:求m以内的素数(m>2) def find_all_primes_in(m): def prime(num): for i in range(2, num): ...

  9. python、C++经典算法题:打印100以内的素数

    题目 打印100以内的素数 思路1 素数的特点: 素数一定是奇数 一个数如果是合数,那么它一定能够被2到这个合数的开平方内的某个素数整除(这个特点是提升效率的关键) 一个数如果不能被从2到它自身开平方 ...

  10. Java例题_27 100以内的素数

    1 /*27 [程序 27 求素数] 2 题目:求 100 之内的素数 3 */ 4 5 /*分析 6 * 素数:是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数. 7 * 同第二题: ...

随机推荐

  1. 【工具】FreePic2PDF+PdgCntEditor|PDF批量添加书签(Windows)

    这俩软件都不大,比较便携. FreePic2PDF: 我下载的来源:https://www.52pojie.cn/thread-1317140-1-1.html(包含下载链接https://www.l ...

  2. [HTB] 靶机学习(一)Heal

    [HTB] 靶机学习(一)Heal 概要 学习hackthebox的第一天,本人为初学者,将以初学者的角度对靶机渗透进行学习,中途可能会插入一些跟实操关系不大的相关新概念的学习和解释,尽量做到详细,不 ...

  3. C# 中 WebSocket 与 SignalR:实时通信的两种选择

    在现代 Web 应用中,实时通信变得越来越重要.无论是聊天应用.在线游戏.股票行情推送还是协作编辑工具,都需要服务器能够主动向客户端推送数据.在 .NET 生态系统中,WebSocket 和 Sign ...

  4. P6790 [SNOI2020] 生成树 题解

    感觉很多题解都说的不是很清楚?如何将三操作与二操作合并起来一起处理好像都没有提到.(也有可能是我太菜了,看了半天才懂) 思路 考虑这个图一定是一个广义串并联图.为什么呢? 广义串并联图的定义是不存在一 ...

  5. 数据库事务回滚:FastAPI中的存档与读档大法

    title: 数据库事务回滚:FastAPI中的存档与读档大法 date: 2025/05/10 00:18:52 updated: 2025/05/10 00:18:52 author: cmdra ...

  6. C# 之静态构造器与静态字段初始化器

    public class Test { /// <summary> /// 静态字段初始化器会在调用静态构造器前运行. /// 如果类型没有静态构造器,字段会在类型被使用前或运行时中更早的 ...

  7. git 初始化项目、创建本地分支、本地分支与远程分支关联

    在远程没有项目的场景下,可以通过如下步骤创建和关联远程分支: 在Git官网上点击New repository新建项目: 在本地新建一个同名文件(以demo为例),并初始化项目: 在demo目录打开gi ...

  8. 2021NOI 省选训练赛day2T1 A. 黑白沙漠

    2021NOI 省选训练赛day2T1 A. 黑白沙漠 Problem 在一条长度有限的数轴 \([L,R]\) 上,有 \(N\) 栋建筑物.其中第 \(i\) 栋建筑物的坐标为 \(x_i\) , ...

  9. K8s新手系列之CronJob

    概述 官方文档:https://kubernetes.io/zh-cn/docs/concepts/workloads/controllers/cron-jobs/ CronJob控制器以 Job控制 ...

  10. pytorch入门 - AlexNet神经网络

    AlexNet背景 AlexNet是2012年由Alex Krizhevsky.Ilya Sutskever和Geoffrey Hinton提出的深度卷积神经网络架构. 它在ImageNet大规模视觉 ...