求100以内素数,不知道哪错了~解决方案

求100以内素数,不知道哪错了~
#include<stdio.h>
#include<math.h>
void main(){
int i,n=100;
while(n>1){
i=(int)sqrt(n);
while(i>=2)
if(n%i!=0)
if(i==2){
printf("%d",n);
n--;
}
else
i--;
else
n--;
printf("%d",n);
n--;
}


}
流程图都画出来了,不知道哪出问题了

------解决方案--------------------
C/C++ code

//判断num是不是素数,是则返回1
int isPrime(int num)
{
    int d = 3;
    if(num == 2 || num == 3)
        return 1;
    if(num%2 == 0)//num为偶数
        return 0;
    //num为奇数
    while(d <= sqrt(num) && num % d != 0)
    {
        d += 2;
    }
    if(num % d != 0)
        return 1;
    return 0;
}

------解决方案--------------------
include<stdio.h>
void main()
{
int a;
printf("input a number bigger than three please\n");
scanf("%d",&a);
for(int i=3;i<=a;i++)
{
 if(i==a)
printf("the number is prime");
else if(a%i==0)
{
printf("the number is not prime");
break;
}
}
}