判断数组是否是素数的算法-C语言--感觉这自己写的这算法有点难难理解....
素数也称为质数, 一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数。(规定1既不是质数也不是合数)。
我们可以利用循环内嵌来判断质数,根据性质可知质数是大于1的且只能被1和本身整除。举个例子:求100以内全部素数并且把它们赋入result数数组里。
那么有代码:
/* *时间: 2020年9月13日 15:09:48 *例: 求100以内全部素数并且把它们赋入result数数组里 *核心: i 和 j 要等于2 且 注意j是否>=i; */ #include<stdio.h> int main() { int i,j,n = 0,result[100];//i和j是循环控制变量,n是素数的个数,result装素数的数组 for(i = 2;i<100;i++)//i初始化2,做被比值,判断i是否为素数 { for(j = 2;j<i;j++)//j初始化2,j做因数(从2到99逐个变化),用来判断是否能整除i,若整除则i不是素数,反之是素数。 { if(i % j == 0) break; //如果i能被j整除,那么跳出循环,★则i不是素数 且 j 比 i 小!★ } if(j==i) //如果等于i的话,那么证明i是素数,且上个for循环没break。一定要是 j=i 不然出租哦 ,因为上个for循环j++了j刚刚好等于i。 result[n++] = i; // 把i赋给result,且n++【n为素数个数】; } return 0; }
认真分析/*核心*/ 主考逻辑。
本文来自博客园,作者:咸瑜,转载请注明原文链接:https://www.cnblogs.com/bi-hu/p/13661583.html