首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何寻找素数

如何寻找素数
EN

Stack Overflow用户
提问于 2017-12-05 07:47:38
回答 1查看 108关注 0票数 0

嗨,我是用c语言写的,下面是我的代码。我试着输入一个输入,用模数来检查输入数字的人是否是素数。但是,我在第一个if语句中出现了错误。错误是浮点异常(内核转储),为什么会这样?不允许将值与0进行比较吗?

代码语言:javascript
运行
AI代码解释
复制
#include <stdio.h>

int main()
{
  int i = 0, j = 0, count = 0, value = 0, stop = 0;

      scanf("%d", &j);
      stop = j;
    for(i = 0; i < stop; ++i)
    {
      value = j % i;
      if(value == 0)
      {
        ++count;
      }
    }
    if(count>1)
      {
      printf("YES");
      }
      else
      printf("NO");
            return 0;

}

下面是我的问题,实际上,我无法使我的编译工作正常,虽然我可以得到输出。输入

T-测试用例的数量,然后t测试用例如下。T <= 500每一行包含一个整数:n2 <= n <= 2^63-1输出。

对于每个测试用例,如果给定的数字是素数,则输出字符串"YES“,否则输出"NO”。

代码语言:javascript
运行
AI代码解释
复制
#include <stdio.h>

int main()
{
  int i = 0, j = 0, count = 0, value = 0, stop = 0, store[]={0}, s = 0;

      scanf("%d", &j);
      stop = j;
    for(i = 1; i < stop; ++i)
    {
      value = j % i;
      if(value == 0)
      {
        store[s]=value;
        ++count;
        ++s;
      }
    }

    if(count>=2 || j==1 )
      {
      printf("NO");
      }
      else
      printf("YES");
    return 0;
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-12-05 07:53:19

我敢打赌,您会在if语句之前得到以下错误:

代码语言:javascript
运行
AI代码解释
复制
value = j % i;

这是因为您从i =0开始:

代码语言:javascript
运行
AI代码解释
复制
for(i = 0; i < stop; ++i)

由于模运算符%是一个除法,所以使用0作为第二个操作数是不合法的。你得到的除以零误差。

顺便说一下:从1开始是没有意义的。

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

https://stackoverflow.com/questions/47657537

复制
相关文章
如何用算法高效寻找素数?
不要觉得素数的定义简单,恐怕没多少人真的能把素数相关的算法写得高效。本文就主要聊这样一个函数:
乔戈里
2019/10/12
2K0
如何用算法高效寻找素数?
算法专题:如何用算法高效寻找素数?
不要觉得素数的定义简单,恐怕没多少人真的能把素数相关的算法写得高效。本文就主要聊这样一个函数:
帅地
2019/10/15
6810
算法专题:如何用算法高效寻找素数?
五分钟小知识:如何用算法高效寻找素数?
不要觉得素数的定义简单,恐怕没多少人真的能把素数相关的算法写得高效。本文就主要聊这样一个函数:
五分钟学算法
2019/10/09
4540
五分钟小知识:如何用算法高效寻找素数?
除了寻找梅森素数,分布式技术还能做这些!
公元前300多年,古希腊数学家欧几里得开启了研究2p-1这类素数的先河,随后也吸引了众多欧洲数学家们的研究兴趣。其中有一位叫马林·梅森的法国人,因其最早系统而深入的研究2p-1(其中指数p是素数),人们为了纪念他,将这类数统称为“梅森数”。此后的2300多年截止至今,人类也只发现了51个梅森素数,由此可见梅森素数的探寻之艰难。
冬瓜哥
2019/06/04
1.7K0
除了寻找梅森素数,分布式技术还能做这些!
《程序员数学:筛选素数》—— 如何计算100内的素数?
源码:https://github.com/fuzhengwei/java-algorithms
小傅哥
2022/12/13
7020
《程序员数学:筛选素数》—— 如何计算100内的素数?
素数判定(素数)- HDU 2012
刚学编程的时候,我们大多需要做的一道题,那就是用C语言来判定一个数是否是素数。那时候很自然的会想到,对于数n,直接遍历一下n以下的数x,如果n%x等于0,说明可以被整除,也就不是素数。
ACM算法日常
2018/08/07
1.4K0
素数判定(素数)- HDU 2012
如何寻找同源基因---OrthoFinder
构建物种的系统发育树,计算kaks值或者比较基因组学和进化的其他分析都少不了需要寻找同源基因。
阿凡亮
2020/04/13
3.3K1
素数环-dfs+素数打表
素数环-dfs+素数打表(易理解) #include<stdio.h> #include<string.h> int a[50],b[50],vis[50],n; void prime(){ //素数打表 memset(a,0,sizeof(a)); a[0]=a[1]=1; //素数为0非素数为1 for(int i =2;(!a[i])&&i<50;i++) //a[i]=1表明是素数,则其倍数也是素数因为i就是前边的素数的倍数 for(int j=i
知识浅谈
2020/03/24
6010
素数求和
200万以内素数求和 这是刚开始写的代码,有点长。 #include <stdio.h> #include <math.h> /* 200万以内素数求和 */ int main() { int i; long long int p=0; int n,num,s,tmp=0; scanf ("%d",&n); for (num=0;num<=n;num++) { if(num ==2|| num==3 )//对2||3特殊处理 { p+=num; continue;} { if
Petterp
2022/02/09
9650
素数筛选
思路:我们知道素数的倍数肯定不是素数,所以的话,我们将素数的倍数置为1,经过这一系列处理后,遍历输出为0的即求出了N以内的所有素数!
杨鹏伟
2020/09/11
1.1K0
调素数
题意:从一个含有n个元素的数组中挑选出k个相加,看结果是否为素数。计算其中素数个数。
杨鹏伟
2020/09/11
6450
数论-素数
若两个素数相差2则称为一对孪生素数,求区间[1,n]内的孪生素数个数。 筛法素数打表,然后判断孪生,用前缀和记录。
唔仄lo咚锵
2020/09/15
6010
如何寻找网站文件上传漏洞?
首先找到文件上传的窗口,然后判断是服务器端还是客户端的验证,客户端较容易判断出来,最后检验是哪种服务器端的过滤方式。判断是客户端和服务端检验,再检验是白名单还是黑名单,根据具体情况来决定采用什么绕过方式。
天钧
2019/11/11
2.3K0
如何寻找网站文件上传漏洞?
如何寻找网站文件上传漏洞?
首先找到文件上传的窗口,然后判断是服务器端还是客户端的验证,客户端较容易判断出来,最后检验是哪种服务器端的过滤方式。判断是客户端和服务端检验,再检验是白名单还是黑名单,根据具体情况来决定采用什么绕过方式。
用户1631416
2019/11/18
2.2K0
如何使用DeadFinder寻找失效链接
DeadFinder是一款功能强大的链接分析工具,该工具可以帮助广大研究人员快速地寻找目标页面中的无效链接(死链)。所谓死链,即一个页面中存在的无法被连接的一条链接。这些链接如果一直保留在页面中的话,可能会影响SEO的效果,更严重的可能会影响整个网站的安全。因此,DeadFinder便应运而生,在该工具的帮助下,广大研究人员可以轻松识别和修改这些死链。
FB客服
2022/11/14
6090
如何使用DeadFinder寻找失效链接
组素数
我们国家在1949年建国。如果只给你 1 9 4 9 这4个数字卡片,可以随意摆放它们的先后顺序(但卡片不能倒着摆放啊,我们不是在脑筋急转弯!),那么,你能组成多少个4位的素数呢?
SingYi
2022/07/13
4490
求素数
public static void main(String[] args) { // TODO Auto-generated method stub System.out.println(0.0 *0.0 <=0.0); //素数,除了1和自己不能被其他数整除的数 int count=0; //计算101至200间的素数 for(int i =101 ;i<200;i++){ //从2开始遍历不能被整除的数 for(int j=2;j<i;j++){ if(i%j==0){ break; } if(j+1==i){ System.out.println(i+”是素数”); count++; } } } System.out.println(“素数的个数:”+count); }
全栈程序员站长
2022/08/09
5610
孪生素数
题目描述 所谓孪生素数指的是间隔为2的相邻的素数,他们之间的距离已经近得不能再近了,就像孪生兄弟一样,最小的孪生素数是(3,5),在100以内还有(5,7),(11,13),(17,19),(17,19),(29,31),(41,43),(59,61),(71,73),总计8组。
Vincent-yuan
2020/07/01
9600
回文素数
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
喜欢ctrl的cxk
2019/11/08
1K0
点击加载更多

相似问题

如何使连续三周或更长时间的用户有序使用?

316

如何让会话变量的时间更长?

10

如何让通知显示更长时间?

128

如何让会话持续时间更长?

19

Power BI -值连续增加3天或更长时间

1100
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

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

洞察 腾讯核心技术

剖析业界实践案例

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