【本题思路】
1:所有三位数即100~999
2:质数只能被1和它自身整除,也就是取模为0
3:设计两层循环,外层遍历所有三位数(作为被除数),内层遍历除数。
4:将除数(即j-1)设置为从2开始,直到当前数减一,如果在此期间出现了余数为0的情况,则跳出本次除数的循环,继续下一个被除数;如果被除数不能被循环中的任何数所整除,则将计数器加一,继续下一个被除数。
比如,从100开始,100能被2整除,此时应跳出本次循环,继续101。101不能被从2到100之间的任何数整除,此时计数器cnt+1,继续102。依此类推。
#include <stdio.h> int main() { int cnt=0, i, j; for(i=100;i<1000;i++) { for(j=3;j<=i;j++) { if(i%(j-1)==0) break; else if(j==i) cnt++; } } printf("%d", cnt); return 0; }