c语言实训这道题是什么意思啊,萌新小白新上路看不懂求大神帮忙 100

3、素数3.1【问题描述】输出100—200之间的所有素数。3.2【基本要求】素数的定义:几种求素数的算法:循环次数的比较3.3【程序代码】3.4【样例】样例输出:素数算... 3、素数3.1【问题描述】输出100—200之间的所有素数。3.2【基本要求】素数的定义:几种求素数的算法:循环次数的比较3.3【程序代码】3.4【样例】样例输出:素数 算法1循环次数 算法2循环次数 算法3循环次数101 99 50 11…………3.5【心得体会】 展开
 我来答
老冯文库
2017-06-08 · 知道合伙人软件行家
老冯文库
知道合伙人软件行家
采纳数:1139 获赞数:8733

向TA提问 私信TA
展开全部

C语言程序:

#include <stdio.h>
#include <math.h>

int isPrime1(int num, int *c);
int isPrime2(int num, int *c);
int isPrime3(int num, int *c);

void main()
{
int n, c1, c2, c3;

printf("%-8s%-20s%-20s%-20s\n", "素数", "算法1循环次数", "算法2循环次数", "算法3循环次数");
for(n=100; n<=200; n++)
{
if(isPrime1(n, &c1) == 1)
{
isPrime2(n, &c2);
isPrime3(n, &c3);
printf("%-8d%-20d%-20d%-20d\n", n, c1, c2, c3);
}
}
}

//算法1
int isPrime1(int num, int *c)
{
int i;

for(i=2; i<num; i++)
if(num % i == 0)
break;

*c = num - 2;

return (i < num ? 0 : 1);
}

//算法2
int isPrime2(int num, int *c)
{
int i;

for(i=2; i<=num/2; i++)
if(num % i == 0)
break;

*c = num/2 - 1;

return (i <= num/2 ? 0 : 1);
}

//算法3
int isPrime3(int num, int *c)
{
int i, k = (int)(sqrt(num));

for(i=2; i<=k; i++)
if(num % i == 0)
break;

*c = k - 1;

return (i <= k ? 0 : 1);
}


运行测试:

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式