这题难度低,适合c语言新手入门。
思路:
- 外层for循环遍历小于输入值的数。
- 内层for循环判断是否是素数。
- 用一个Backnumber变量记录上一个素数。若BackNumber变量与刚找到的素数 i 相减等于二,则count加一。
- 把刚找到的素数 i 赋值给BackNumber变量。
#include#include int main(){ int i, j; //循环变量 int count = 0; //计数 int number; int BackNumber = 2; //存储上一个素数,初始值 2. scanf("%d", &number); for(i = 2; i <= number; i++){ for(j = 2; j <= sqrt(i); j++){ if(i % j == 0){//被整除则结束本层循环 break; } } if(j > sqrt(i)){//统计素数队个数 if(i - BackNumber == 2){ count++; } BackNumber = i; } } printf("%d",count); }
不足之处敬请斧正,谢谢!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)