在c语言中寻找质数
C语言中求质数的方法有很多。如果是刚入门,最基本的就是根据素数的定义来判断一个数是否是素数。判断一个数n是否是质数,用一个循环,从2到n -1。如果n不可整除,那么n是素数,否则不是素数。
稍微改善一下的方法就是直接判断n/2。更高效的方法是判断根号n,判断的依据是一样的。
如何用c语言求质数? 除了2,所有的质数都是奇数,所以2是分开处理的。从3开始,对100以内的奇数逐一检查,如果是则输出,否则跳过。另一个计数变量被设置为控制换行,并且每输出五个质数就添加一个回车。代码如下:
#包含“stdio.h”
int main(int argc,char *argv[]){
int i,n,t;
公共关系
#包括
#包括
主()
{
int a,I,flag,count = 0;
for(a = 1;a = 100答
{
flag = 0;
for(I = 2;我
#include int main()
{
int i,n,k,b;
for(i=1,b = 1;i = 100我)
{
for(n = 2;n {
k = I % n;
如果(k==0)
打破;
}
扩展数据:
c语言考虑因素:
1.预编译命令不是语言语句,所以它不使用分号,也不占用运行时间。
2.在IDE中,通常有编辑器、编译器、汇编器和连接器。在这个过程中,语言水平逐渐降低。从最高的C语言到中级语言汇编语言再到低级语言机器语言,编辑器生成的文件是. C文件,编译器生成的文件是obj汇编文件,链接器生成的文件是exe文件。
3.注意返回和退出的区别。返回是结束该函数的运行,退出是结束该程序的运行。
4.定义指针时,必须对其进行初始化,否则会出现意外错误。如果找不到对应的地址赋值,就赋NULL(注意大小写)。
5.gets可以做scanf做不到的事情,即可以接受空格,puts会在末尾输出一个换行符。
C语言中求素数的算法 根据质数的性质,代码设计如下:
设计一:判断n是否能被1~n-1整除。
# includestdio.h
int main()
{
int i,n;
scanf("%d ",n);
for(I = 2;I n;我)
{
如果(n%i == 0)
打破;
}
if (i n) printf("这不是素数。");
else printf("这是一个质数。");
返回0;
}
设计二:判断n是否能被2和√ n之间的整数整除。
# includestdio.h
#包含math.h
int main()
{
int n,I;
双k;
scanf("%d ",n);
k = sqrt(n);
for(I = 2;I = k;我)
{
if(n % I = = 0)break;
}
if (i =k) printf("这不是素数。");
else printf("这是一个素数");
返回0;
}
扩展数据:
1.素数的定义是只能被1和自己整除,1不是素数。所以判断一个数是不是素数,就要判断它是否能被所有比他小的素数整除。这是一个算法。(写算法的时候,我只能写它被所有比他小的数除,导致运算速度低。)
2.如果一个素数大于根号n,并且n能整除它,那么n也必须整除一个更小的素数。由此,我们可以用方法2得到一个快速的素数判断算法。
参考:百度百科-scanf
参考:百度百科-质数
最后更新于 2023-10-07 11:50:32 并被添加「」标签,已有 位童鞋阅读过。
本站使用「署名 4.0 国际」创作共享协议,可自由转载、引用,但需署名作者且注明文章出处
相关文章