C语言求解 一道素数的题目

2个回答

`````` #include <stdio.h>
#include <stdlib.h>

int main()
{

int nMaxIntValue = 214783647;   // 这个是int的最大值
int nDistance = nMaxIntValue;   // 保证距离最远
int nInputValue = 0;

printf("请输入一个整数:");
scanf("%d", &nInputValue);

if (nInputValue <= 2)
{
printf("结果是2\n");
}
else
{
int nFindCount = 0;
int nRet1, nRet2;

for(int nCurNumber = 3; nCurNumber <= nMaxIntValue; ++nCurNumber)
{
int nEndValue = nCurNumber / 2 + 1;
bool bIsPrime = true;
for (int nIndex = 2; nIndex <= nEndValue; ++nIndex)
{
if (nCurNumber % nIndex == 0)
{
bIsPrime = false;
break;
}
}

// 是素数就进行距离判断
if (bIsPrime)
{
int nCurDistance = abs(nInputValue - nCurNumber);
if (nCurDistance < nDistance)
{
nDistance = nCurDistance;
nRet1 = nCurNumber;
nFindCount = 1;
}
else if (nCurDistance == nDistance)
{
nDistance = nCurDistance;
nRet2 = nCurNumber;
nFindCount = 2;
break;
}
else
{
break;
}
}
}

if (nFindCount == 1)
{
printf("结果是%d\n", nRet1);
}
else if (nFindCount == 2)
{
printf("结果是%d %d\n", nRet1, nRet2);
}
}

getchar();  // 就是为了看结果
getchar();

return 0;
}
``````

`````` #include <stdio.h>
#include <stdlib.h>

int main()
{

int nMaxIntValue = 214783647;   // 这个是int的最大值
int nDistance = nMaxIntValue;   // 保证距离最远
int nInputValue = 0;

printf("请输入一个整数:");
scanf("%d", &nInputValue);

if (nInputValue <= 2)
{
printf("结果是2\n");
getchar();  // 就是为了看结果
getchar();
return 0;
}

int nFindCount = 0;
int nRet1, nRet2;

for(int nCurNumber = 3; nCurNumber <= nMaxIntValue; ++nCurNumber)
{
int nEndValue = nCurNumber / 2 + 1;
bool bIsPrime = true;
for (int nIndex = 2; nIndex <= nEndValue; ++nIndex)
{
if (nCurNumber % nIndex == 0)
{
bIsPrime = false;
break;
}
}

// 是素数就进行距离判断
if (bIsPrime)
{
int nCurDistance = abs(nInputValue - nCurNumber);
if (nCurDistance < nDistance)
{
nDistance = nCurDistance;
nRet1 = nCurNumber;
nFindCount = 1;
}
else if (nCurDistance == nDistance)
{
nDistance = nCurDistance;
nRet2 = nCurNumber;
nFindCount = 2;
break;
}
else
{
break;
}
}
}

if (nFindCount == 1)
{
printf("结果是%d\n", nRet1);
}
else if (nFindCount == 2)
{
printf("结果是%d %d\n", nRet1, nRet2);
}

getchar();  // 就是为了看结果
getchar();

return 0;
}

``````
qq_36519547 您这感觉是两个拼凑 起来的，能不能合成一个 最终只有一个return 0

#include<stdio.h> int main(void) { float x,y; int n,m,j,i=1; float c; while(~scanf("%f%f",&x,&y)) { n=x; j=y-x+1; int a[j]; int c[j]; while(n<=y) { j=1; m=n*n+n+41; if(i<=m) { a[j]=m; c[j]=a[j]%i; i++; j++; } n=n+1; } if(c[j]!=0) { printf("OK"); } else { printf("Sorry"); } } return 0; } 题目是对于表达式n^2+n+41，当n在（x,y）范围内取整数值时（包括x,y）(-39<=x<y<=50)，判定该表达式的值是否都为素数。 不知道我这样写改怎么去改，才不会WA报错 #include<stdio.h> 代码更新 int main(void) { float x,y; int n,m,j,i=1; j=y-x+1; int a[j]; int c[j]; while(~scanf("%f%f",&x,&y)) { n=x; while(n<=y) { j=1; m=n*n+n+41; if(i<=m) { a[j]=m; c[j]=a[j]%i; i++; j++; } n=n+1; } if(c[j]!=0) { printf("OK"); } else { printf("Sorry"); } } return 0; } ``` 还是报错 ```
C语言计算1000以内的质数的和，并且输出出来，代码
C 语言计算1000以内的质数的和，并且输出出来，代码怎么来写
c语言 用筛选法打表求解素数题
D_Prime [ Submit Code ] [ Top 20 Runs ] [ Runs Status ] Acceteped : 777 Submit : 2849 Time Limit : 2000 MS Memory Limit : 65536 KB Description 题目描述 整数n=p*q，p和q为质数，且p≠q，我们称n为D-Prime，请写个程序判断一个数是不是D_Prime。 输入 第一行是一个整数K，表示样例的个数。以后每行是一个整数x,(1 ≤ x ≤ 100,000,000); 输出 每行输出一个样例的结果，如果是输出“Yes”，否则输出“No”。
（C语言）怎样判断大数是否是素数？

c语言寻找素数数据溢出问题

C语言 判断输入数字是否为素数 输入1到17判断都是正确的（只试到17） 但是输入9判断结果是“9是素数” 而且就9这一个数字这样 求解？？
#include<stdio.h> int panduan(int a) { int m; for(m=2;m<a;m++) { if(a%m==0) { return 0; } { return 1; } } } int main() { int a; printf("请输入一个数字："); scanf("%d",&a); if(panduan(a)) { printf("%d是素数",a); } else { printf("%d不是素数",a); } return 0; }

Problem Description 反素数就是满足对于任意i(0<i<x),都有g(i)<g(x),(g(x)是x的因子个数),则x为一个反素数。现在给你一个整数区间[a,b],请你求出该区间的x使g(x)最大。 Input 第一行输入n,接下来n行测试数据 输入包括a,b, 1<=a<=b<=5000,表示闭区间[a,b]. Output 输出为一个整数,为该区间因子最多的数.如果满足条件有多个,则输出其中最小的数. Sample Input 3 2 3 1 10 47 359 Sample Output 2 6 240

c语言编程题目： 回文素数（望解答）

C语言 关于筛选法求素数的问题 求大佬帮助！
# 用筛选法求m和n之间的所有素数 求大神帮忙看看怎么写这个代码 实在写不出来 ``` #include "stdio.h" main() { int a[1000]={0},i,j,m,n; scanf("%d%d",&m,&n); @@2 对数组作筛选法处理 @@2 for(i=m;i<=n;i++) if(a[i]!=-1) printf("%d ",i); } ```

c语言关于孪生素数问题

C语言求素数一个小问题

c语言求素数个数，优化方法

Java学习的正确打开方式

linux系列之常用运维命令整理笔录

Vue + Spring Boot 项目实战（十四）：用户认证方案与完善的访问拦截

Python十大装B语法
Python 是一种代表简单思想的语言，其语法相对简单，很容易上手。不过，如果就此小视 Python 语法的精妙和深邃，那就大错特错了。本文精心筛选了最能展现 Python 语法之精妙的十个知识点，并附上详细的实例代码。如能在实战中融会贯通、灵活使用，必将使代码更为精炼、高效，同时也会极大提升代码B格，使之看上去更老练，读起来更优雅。 1. for - else 什么？不是 if 和 else 才

2019年11月中国大陆编程语言排行榜
2019年11月2日，我统计了某招聘网站，获得有效程序员招聘数据9万条。针对招聘信息，提取编程语言关键字，并统计如下： 编程语言比例 rank pl_ percentage 1 java 33.62% 2 c/c++ 16.42% 3 c_sharp 12.82% 4 javascript 12.31% 5 python 7.93% 6 go 7.25% 7

SQL-小白最佳入门sql查询一

“狗屁不通文章生成器”登顶GitHub热榜，分分钟写出万字形式主义大作

IT界知名的程序员曾说：对于那些月薪三万以下，自称IT工程师的码农们，其实我们从来没有把他们归为我们IT工程师的队伍。他们虽然总是以IT工程师自居，但只是他们一厢情愿罢了。 此话一出，不知激起了多少(码农)程序员的愤怒，却又无可奈何，于是码农问程序员。 码农：你知道get和post请求到底有什么区别？ 程序员：你看这篇就知道了。 码农：你月薪三万了？ 程序员：嗯。 码农：你是怎么做到的? 程序员：
《程序人生》系列-这个程序员只用了20行代码就拿了冠军

11月8日，由中国信息通信研究院、中国通信标准化协会、中国互联网协会、可信区块链推进计划联合主办，科技行者协办的2019可信区块链峰会将在北京悠唐皇冠假日酒店开幕。 　　区块链技术被认为是继蒸汽机、电力、互联网之后，下一代颠覆性的核心技术。如果说蒸汽机释放了人类的生产力，电力解决了人类基本的生活需求，互联网彻底改变了信息传递的方式，区块链作为构造信任的技术有重要的价值。 　　1

Android 9.0系统新特性，对刘海屏设备进行适配

【技巧总结】位运算装逼指南

8年经验面试官详解 Java 面试秘诀
作者 | 胡书敏 责编 | 刘静 出品 | CSDN（ID：CSDNnews） 本人目前在一家知名外企担任架构师，而且最近八年来，在多家外企和互联网公司担任Java技术面试官，前后累计面试了有两三百位候选人。在本文里，就将结合本人的面试经验，针对Java初学者、Java初级开发和Java开发，给出若干准备简历和准备面试的建议。   Java程序员准备和投递简历的实

1.两种思维方式在求职面试中，经常会考察这种问题：北京有多少量特斯拉汽车？ 某胡同口的煎饼摊一年能卖出多少个煎饼？ 深圳有多少个产品经理？ 一辆公交车里能装下多少个乒乓球？ 一