c语言编程,求素数的问题
发布网友
发布时间:2022-04-26 10:03
我来回答
共1个回答
热心网友
时间:2022-06-27 03:30
他这样是筛素数
a[i]最初等于2
他把能被2整除的都记为0了
那在以后的运算中
保证a[i]是素数
也就是除一个素数
a[j]等于0
说明他已经被一个素数整除了
已经不是素数了
所以就不用再计算他了
也就是
先筛掉2的倍数
再筛掉3的倍数
再筛掉5的倍数(4被2整除
已经记为0)
再筛掉7的倍数(6被2整除
已经记为0)
再筛掉11的倍数
(8被2整除
9被3整除
10被2整除
都已经被记为0)
。。。。。
最后剩下的就都是素数了
楼主主要注意一下i和j的循环
j的循环是在i的循环里面的,而且他们同是代表数组a的下标
那么当i=2时,是进入j的循环,此时是要将j的循环跑完之后才再进行i++
那么a[j]已经记为0的数,也就是j,i的循环肯定是之后才会循环到
再说明白点,当i=2时,你把j=4的a[j]=0,那么此时的i是2,之后i会自加到4
那么a[i]就是0
如果楼主想不明白
可以把i和j的循环打出来看一下,就像这样
for(i=2;i<sqrt(N);i++)
for(j=i+1;j<N;j++)
{
printf("i=%d
j=%d\n",i,j);
if(a[i]!=0&&a[j]!=0)
if(a[j]%a[i]==0)
a[j]=0;
}
求"求素数的C语言程序"
if(a==0){ printf("%d是素数。\n", num);}else{ printf("%d不是素数。\n", num);} return 0;}
用c语言如何判断素数的个数
1、首先需要打开vs软件工程,准备好一个空白的C语言文件,引入头文件,主函数中暂时没有内容:2、这里开始编写代码,这里判断素数需要用到平方根,所以要在头文件中引入math库,然后编写判断素数的函数,函数有唯一的参数n,代表素数。判断的依据是素数n只要不能被 2 到根号下n之 间任一整数整除,则n...
c语言求100以内的所有素数
C语言求100以内的素数编程的思路和方法如下:1、首先需要定义两个整型的游标变量,用于后续的循环操作。这里定义两个变量为i,j。2、接着适用for循环来分别计算100以内的数。其中游标适用i变量。(因为第一个素数是3,所以循环变量游标从数字3开始)3、接着在第一个for循环的开头添加布尔变量tag,这个用...
c语言求1-1000素数的算法问题
循环嵌套,外层循环是从1-1000的数字i(1排除,这你应该明白),内层是对数字i的素数判断。素数:除了1和它本身外没有别的因子。也可以理解为:除了1和它本身,其他数来除它余数都不是0。所以内层循环用从2开始到i的平方根(取整)依次求余,因为到了平方根以后,再增加除数,得到的商是小于平方根...
c语言怎样算素数?
1、建立一个工程和.c文件。2、输入头文件和主函数。3、定义变量类型并初始化。4、输入整数。5、求出m的算数平方根。6、如果可以整除,说明不是素数,退出循环。7、输出得到最后的结果。8、编译,运行,可以判断一个数是否为素数。
c语言求素数的算法
设计一:判断n是否能被1~n-1整除,不能整除为素数 include<stdio.h> int main(){ int i, n;scanf("%d", &n);for (i = 2; i < n ; i++){ if (n%i == 0)break;} if (i < n) printf("This is not a prime.");else printf("This is a prime.");return 0;} 设计二...
C语言求100以内素数的问题
printf("%d ",i);} } printf("\ncount=%d\n",count);return 0;} 解题思路:素数,就是除了1和他本身,不能被其他数整除的数字。答案就是用100到200之间的每个数字,除以2到其本身前面的那一个数字,如果此过程中出现整除的现象,则该数不是素数。如果没有整除的现象,则该数为素数输出。
C语言判断素数(求素数)
判断素数有两种思路。第一种是检查2到m-1之间的所有整数是否能整除m。如果都不能,则m是素数。第二种简化思路是只需检查2到之间的整数。如果m不能被这些数整除,那么它必定是素数。例如,判断17是否为素数。只需检查17被2到4之间的整数整除。由于都不能整除,可以判定17是素数。原因在于,若m能被...
用C语言求解1-100之间的所有素数。
Action(){ int i,j;int sum=0;int flag;//是否为素数 for(i=2;i<=100;i++){ flag=1;for(j=2;j<=i-1;j++){ if(i%j==0){ flag=0;break;} } if(flag==1){ sum+=i;} } lr_output_message("sum=%d",sum);return 0;} 输出的结果:sum=1060 ...
求素数的C语言程序!
C语言-寻找素数 附代码:#include<stdio.h>#include<math.h>int main()//原理:设ab=c,a<b,则有a<根号c<b。若设a恒小于根号c,则只需判断a是否为因数{int a, b;printf("请按从小到大输入两个素数:");scanf_s("%d %d", &a, &b);int n = 0,m=0,sum = 0;double i, j...