Prime finder代码

时间:2015-03-12 06:22:23

标签: c primes

它说一旦输入并按回车,程序就停止工作了。但似乎找不到原因。

#include<stdio.h>
int main()
{
    int n;
    scanf("%d", &n);
    int m,f,count,i;
    m = 2;
    count = 0;
    while(m>=2){
        f = 0;
        for(i=0; i*i<m; i++){
            if(m%i==0){
                f = 1;
            }
        }
        if (f==0){
            count++;
        }
        if (count==n){
            printf("%d", m);
            break;
        }
        m++;
    }
}

2 个答案:

答案 0 :(得分:3)

for(i=0; i*i<m; i++){
    if(m%i==0){

i0开头,因此在m % i中,您将数字除以零。

答案 1 :(得分:0)

m = 2;
// ...
while(m>=2){
    // ...
    m++;
}

while(m>=2)没用,不是吗? BTW你听说过Sieve of Eratosthenes吗?