计科大一萌新一枚,写博客是想与大家分享自己在刷题时遇到的好题。希望大家能多多支持,谢谢啦!(所有题目均来自C语言网)
一道求素数的题:
我们首先要明确素数的概念。素数就是大于等于2的,且因数只有1和自己的正整数。那么我们就想可以用两个for循环,来让憨憨的编译器一个数一个数去试,符合条件输出即可。
#include <stdio.h>
int main()
{
int i, j, a, N;
scanf("%d",&N);
for(i=2;i<=N;i++)//从2开始,因为1不是素数
{
a=0;//a值初始化,如果不赋值为0会出错
for(j=2;j<i;j++)//判断i是否能被其它数整除
{
if(i%j==0)
a++;
}
if(a==0)
printf("%d\n",i);
}
return 0;
}
我觉得第二个for循环的语句块有点不好理解,其实就是来判断i是否能被其他数整除。例如64,如果i=64,从j=2开始,64能被2整除,那么a加为1,如果此时跳出循环往下执行,就会发现a!=0,则64不是素数。再例如17,我们很容易发现,在2到16这些数中,没有一个数可以让17整除,那么a保持0值,符合if条件,输出17,即17是个素数。
大致就是这些啦,谢谢。第一次写博客,好激动。