赞
踩
如果不知道如何判断素数,先看这篇文章https://blog.csdn.net/yzb564/article/details/135224854?spm=1001.2014.3001.5501
- #include <stdio.h>
- //求1到n个数字之间所有的素数
- int main(void)
- {
- int n, j, i;
- scanf_s("%d", &n);
- for (i = 2; i < n; i++)
- {
- //判断i是否为素数,是输出,不是不输出
- for (j = 2; j < i; j++)
- {
- if (i % j == 0)
- break;
- }
- if (j == i)
- printf("%d\n",i);
- }
- return 0;
- }
缺点:
只用main函数实现,有局限性:
1.代码的重复利用率不高
2.代码不够简单明了,不易理解
- #include <stdio.h>
- //本函数功能是:判断m是否是素数,是返回true,不是返回false
- bool is_prime(int m)
- {
- int i;
-
- for (i = 2; i < m; i++)
- {
- if (m % i == 0)
- break;
- }
- if (i == m)
- return true;
- else
- return false;
- }
-
- int main(void)
- {
- int n,i,j;
- scanf_s("%d", &n);
- for (i = 2; i <= n; i++)
- {
- if(is_prime(i))
- printf("%d\n",i);
- }
- return 0;
- }
优点:比代码一更简洁更容易理解,可重复利用率更高
缺点:可重复利用率还不是非常高
用两个函数来实现求1到n个数字之间所以的素数,并将其输出
比代码二 代码量更少,可重复利用率更高
- #include <stdio.h>
-
- //本函数功能是:判断m是否是素数,是返回true,不是返回false
- bool is_prime(int m)
- {
- int i;
-
- for (i = 2; i < m; i++)
- {
- if (m % i == 0)
- break;
- }
- if (i == m)
- return true;
- else
- return false;
- }
-
- //本函数功能是把1到n之间所有的素数在显示器上输出
- void print_1(int n)
- {
- int i;
- for (i = 2; i <= n; i++)
- {
- if (is_prime(i))
- printf("%d\n", i);
- }
- }
-
- int main(void)
- {
- int n,i;
- scanf_s("%d", &n);
- print_1(n);
-
- return 0;
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。