刚学三天只学到循环代码简化

mooc上的题求简化我的代码,mooc上的题求简化我的代码,mooc上的题求简化我的代码,mooc上的题求简化我的代码。图片说明图片说明

#include

int isPrime(long n);

int main(int argc, char const *argv[])
{
int n, m, count;
long l, sum;

while(1) {
    scanf("%d%d", &n, &m);        
    if (n > 0 && n <= m && m <= 200) break;
    printf("Invalid input, try again.\n");
}    

count = 0; sum = 0; l = 2;
do {
    if (isPrime(l)) {
        count ++;
        if (count >= n) sum += l;
    }        
    l++;
} while (count < m);
printf("%d\n", sum);

return 0;

}

int isPrime(long n)
{
int i;

if (n == 2)
    return 1;

for (i = 2; i*i <= n;i++)
    if (n % i == 0)
         return 0;

 return 1;

}

这个题,,,我给个思路吧
【1】计算出m个素数,,存放到一个数组中 array[m];
怎么求,,你的代码里体现出来了。

【2】取出,第n-m的数,求和即可。
(感觉貌似没简化多少,,哎,,起始你把你那个程序的大括号,该去的一去,,能简化到30行差不多)

【建议】最后有个建议,,你这个编辑器是devc++?,它有个问题,(我是受害者,不知道现在更新了没有)

 int n;
 scanf("%d", &n);    //假如输入5
 int  array[n];
 printf("%d\n", array[0]);

这句代码是错误的,,不过devc++可以编译运行,,,,还有篇文章。http://tieba.baidu.com/p/3390092109

一开始建议使用VS系列比较好,可能不好适应