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【心得体会】
展开
1个回答
展开全部
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);
}
运行测试:
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询