首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >素数程序.NET的困难

素数程序.NET的困难
EN

Stack Overflow用户
提问于 2014-01-29 18:10:45
回答 5查看 1.4K关注 0票数 0

我正在试着写一个程序,如果你输入一个数字并单击一个按钮,程序将能够确定该数字是否为质数(只能被1及其本身整除)。

例如,当我输入数字"5“时,程序会说”是“,这是一个质数。但是,当我输入不是质数的"4“时,程序仍然声明是质数。

考虑到我写的"If“语句和循环,我不确定我哪里出错了。我的代码如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Public Class Form1
    Private Sub btnCalculate_Click(sender As Object, e As EventArgs) Handles btnCalculate.Click
        Dim iNum, iSum As Double
        Dim isPrime As Boolean = True
        iNum = Convert.ToInt32(tbxN.Text)
        For i = 2 To (iNum - 1) Step 1
            iSum = iNum Mod i
        Next
        If iSum = 0 Then
            isPrime = False
            lblAnswer.Text = "No"
        Else
            isPrime = True
            lblAnswer.Text = "Yes"
        End If
    End Sub
End Class

我认为这可能是我的" if“语句的问题,程序只使用循环中的最后一个值来决定质数,但是,我需要它,如果iSum为0,那么它就不是质数。如果iSum从不为0,则它是质数。

我该如何着手解决这个问题呢?谢谢!

EN

回答 5

Stack Overflow用户

发布于 2014-01-29 18:15:19

您需要修改您的逻辑,您当前的逻辑正在覆盖iSum的值,从而导致错误结果。一旦发现iSum0,就应该中断循环,否则布尔变量isPrime将保持为false。(我还在初始化时将可变isPrime更改为false )

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Private Sub btnCalculate_Click(sender As Object, e As EventArgs) Handles btnCalculate.Click
    Dim iNum, iSum As Double
    Dim isPrime As Boolean = False
    iNum = Convert.ToInt32(tbxN.Text)
    For i = 2 To (iNum - 1) Step 1
        iSum = iNum Mod i
        If (iSum = 0) Then
            isPrime = True
            Exit For
        End If
    Next
    If isPrime Then
        lblAnswer.Text = "Yes"
    Else
        lblAnswer.Text = "No"
    End If
End Sub

此外,您还可以通过检查循环直到iNum / 2而不是iNum - 1来进一步优化代码,或者更好的方法(如注释中所指出的)是检查直到该数字的平方根:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
For i = 2 To Math.Sqrt(iNum) Step 1

有关它的更多信息,请访问Wikipedia

票数 3
EN

Stack Overflow用户

发布于 2014-01-29 18:15:40

这个检测数字是否为质数的算法是不正确的:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
For i = 2 To (iNum - 1) Step 1
    iSum = iNum Mod i
Next
If iSum = 0 Then
    isPrime = False
    ...

它假设如果一个数不是质数,它将被范围2..N-1中的所有数整除。对非质数的实际要求是可以被这个范围内的任何数字整除。

要实现这一点,请检查iNum Mod i是否为零,并在看到它时立即停止循环。当iNum Mod i为零时,设置一个标示“不是质数”的标志。如果你的循环在没有达到上述条件的情况下完成,那么这个数字是质数。

请注意,您不必检查2..N-1范围内的所有数字:如果您遍历了从2到N的平方根(包括2)的数字,并且没有找到任何因子,则您知道该数字是质数。

票数 1
EN

Stack Overflow用户

发布于 2014-01-29 18:21:20

你也不需要对任何东西求和,如果你得到stop x == 0,在2的范围内,sqrt(p),这意味着p不是素数,停止循环并返回。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21439174

复制
相关文章
Python - 从字典列表中删除字典
字典是python的一个非常常用的功能,用于根据用户需要在其中存储数据。另一个典型的过程涉及编辑或操作此数据。要成为一名高效且快速的程序员,您必须弄清楚如何从字典列表中删除字典。有许多技术可以从词典列表中删除字典,本文将介绍这些技术。
很酷的站长
2023/08/11
2580
Python - 从字典列表中删除字典
如何从 Python 列表中删除所有出现的元素?
在 Python 中,列表是一种非常常见且强大的数据类型。但有时候,我们需要从一个列表中删除特定元素,尤其是当这个元素出现多次时。本文将介绍如何使用简单而又有效的方法,从 Python 列表中删除所有出现的元素。
网络技术联盟站
2023/06/01
12.5K0
如何从 Python 中的字符串列表中删除特殊字符?
在进行字符串处理和文本分析时,有时我们需要从字符串列表中删除特殊字符。特殊字符可能是空格、标点符号、换行符等,在某些情况下它们可能干扰我们的文本处理或分析任务。Python 提供了多种方法来删除字符串列表中的特殊字符。本文将详细介绍在 Python 中删除字符串列表中特殊字符的几种常用方法,并提供示例代码帮助你理解和应用这些方法。
网络技术联盟站
2023/06/01
8.4K0
python中删除列表中重复元素
在面试中,很可能遇到给定一个含有重复元素的列表,删除其中重复的元素,下边给出三种方法来实现这个功能。
全栈程序员站长
2022/09/07
4.1K0
一日一技:使用切片从列表中删除元素
列表的切片操作相信大家都已经非常熟悉了。例如有一个列表: [1,2,3,4,5,6,7,8,9,0]
青南
2019/05/14
3.6K0
Python - 删除列表中的重复字典
Python 是一个非常广泛使用的平台,用于 Web 开发、数据科学、机器学习以及自动化执行不同的过程。我们可以将数据存储在python中,以不同的数据类型,例如列表,字典,数据集。python字典中的数据和信息可以根据我们的选择进行编辑和更改
很酷的站长
2023/08/11
3621
Python - 删除列表中的重复字典
Deepin 升级后蓝牙消失问题
在一开始使用 deepin 时确认过蓝牙是正常的,但是在最近的更新后却发现设置中找不到了蓝牙,任务栏也没了这个图标,版本是 20.01,内核为 5.10.5。
caoayu
2021/02/24
3.4K0
从DataFrame中删除列
在操作数据的时候,DataFrame对象中删除一个或多个列是常见的操作,并且实现方法较多,然而这中间有很多细节值得关注。
老齐
2021/03/29
7.1K0
【leetcode刷题】T103-从分类列表中删除重复项目 II
使用两个指针pre和cur,pre始终指向链表前一部分非重复元素的最后一个节点,cur指向pre指向的节点后重复元素的最后一个节点。当pre->next == cur时,说明cur->val是唯一元素,不用删除,否则pre->next = cur->next。
木又AI帮
2019/07/17
2.3K0
如何从列表中获取元素
观察URAM的物理管脚,不难发现A/B端口都有相应的地址、使能、读写控制信号。与BRAM不同的是URAM的读写使能信号是同一个管脚RDB_WR_A/B,其为0时执行读操作,为1时执行写操作,这意味着一旦A/B端口独立,同一端口的读写操作就无法同时发生,因此,如果采用上一篇文章中介绍的方法将其配置为两个独立的单端口RAM,其读写行为与常规的单端口RAM是不同的,进一步而言,此时的读写行为类似于NO_Change模式。
Lauren的FPGA
2019/10/30
17.4K0
从lvm中删除硬盘、分区
本文由腾讯云+社区自动同步,原文地址 https://stackoverflow.club/article/remove_disk_from_lvm/
羽翰尘
2019/11/20
6.9K0
学生管理系统_排序后通过name删除列表里的字典
l = [{'name': 'wangfan', 'age': 18, 'sex': 'nan'}, {'name': 'wangerfan', 'age': 10, 'sex': 'nan'}, {'name': 'wangsanfan', 'age': 28, 'sex': 'nan'}, {'name': 'wangsifan', 'age': 8, 'sex': 'nan'}, ] l.sort(key=lambda a: a['age'], reverse=
汪凡
2018/05/29
6060
手机将在5年后消失?
企鹅号小编
2017/12/29
8160
手机将在5年后消失?
【说站】python迭代中删除列表项目
2、通过分配给slice somelist[:],改变现有列表以仅包含想要的项目。
很酷的站长
2022/11/24
1.6K0
【说站】python迭代中删除列表项目
python删除列表元素
remove 删除单个元素,删除首个符合条件的元素,按值删除,返回值为空 List_remove = [1, 2, 2, 2, 3, 4] print(List_remove.remove(2)) print("after remove", List_remove) # None # after remove [1, 2, 2, 3, 4] ---- pop 删除索引位置元素,无参情况下删除最后一个元素,返回删除的元素值 List_pop = [1, 2, 2, 2, 3, 4] print(List
演化计算与人工智能
2020/08/14
1.6K0
如何从JavaScript对象中删除属性?
在使用 JavaScript 中的对象时,你可能会遇到需要从对象中完全删除属性的情况。为实现这一点可以有好几个选择:
疯狂的技术宅
2021/04/01
12.4K0
如何从组中删除Linux用户?
在Linux中,用户可以是一个主要组和一个或几个次要(辅助)组的成员。文件“ / etc / group”为Linux系统中的每个用户定义了组成员身份。
用户6543014
2020/04/07
19.6K0
python:删除列表中特定元素的几种方法
终于刷到一条不看答案就能轻松解出来的题目,更重要的是学习到了几种删除列表中元素的方法,值得做一下笔记
冰霜
2022/03/19
8.4K0
python:删除列表中特定元素的几种方法
【说站】Python删除列表中的非字母字符
如果不是字符 a 到 z(大写和小写),则会导致匹配。匹配项被替换为空白字符。您可以将您想要的任何内容放入替换参数中。
很酷的站长
2022/11/24
2.5K0
【说站】Python删除列表中的非字母字符
SAP WM中阶为多个TR创建了Group后将TR从Group里删除?
SAP WM 2-Step Picking流程里,需要为多个TR或者交货单创建组,然后去对该Group执行集中拣配和后续Allocation。如果在创建group的时候由于系统操作错误,导致弄错了,希望将相关的TR或者交货单重新分组,就需要对之前创建的group做相关处理了。
SAP虾客
2022/03/16
1.4K0

相似问题

如果元素尚未显示,html会转到另一个页面的特定元素吗?

25

如何转到页面上的特定元素?

364

使用html自动转到另一个页面。

11

转到活动元素的特定HTML元素

10

HTML网页中的所有文本都已转到指向页面中特定元素id的链接。如何修复?

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文