Онлайн компилятор C

#include<stdio.h> int main() { int N; int sum=0; scanf("%d",&N); int i,num; for(num=2;num<N;num++) { for(i=2;i<8;i++) { int digit=i+2; if(num%digit==0) { sum++; } } } for(i=0;i<10;i++) { printf("%d ",sum); } return 0; }
这段代码试图统计小于N的某些数字,但逻辑存在明显问题。它用了一个奇怪的循环来检查数字是否能被从4到9的整数整除(因为i从2到7,digit = i+2),然后对每个这样的整除情况累加sum,最后打印10次sum。

- 内层循环的digit范围是4到9,这似乎不是常见的质数判断或特定数位判断。你需要明确题目要求:是统计质数?还是统计包含特定数字的数?当前代码没有正确实现任何常见任务。
- 变量sum的累加方式有问题:每次发现一个整除条件就加1,而不是统计满足完整条件的数字个数。你应该先判断一个数是否满足条件(比如是质数),再决定是否增加计数,而不是在循环内部对每个因子都加。