布尔类型素数求解回答问题

#include<bits/stdc++.h>
using namespace std;
bool ss(int i)
{
if(i==1)return false;
int j;
for(j=2;j*j<=i;j++)
{
if(i%j==0)return false;
}
return true;
}
int main(){
int x,y,a=0;
cin>>x>>y;
for(int i=x;i<=y;i++)
{
if(ss(i)==true)a++;

}
cout<<a;
return 0;
}
这是用布尔函数来求素数,有谁能跟我解释这代码每一行的意思,还有判定是否是素数的那一段代码是怎么编的也就是怎样形成的

以下所写可以参考,与题主所写其实很类似的,都有素数部分,判断素数那一段代码的形成其实跟素数定义相关,素数是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数。

//编程及注释:Code_流苏
//定义头文件
#include<stdio.h>
#include<math.h>
//主函数
int main()
{
    //定义i,j用作循环  flag用作计数
    int i,j,flag=0;
    //输出提示
    printf("\t100以内的素数有:\n");
    //循环判断 100以内素数的筛选
    for(i=2;i<=100;i++)
    { 
        for(j=2;j<=sqrt(i);j++)
        {
            if(i%j==0)
            {
                break;
            } 
        }
            
    // 如果完成所有循环,那么i为素数    
    // 注意最后一次循环,会执行j++,j+1>sqrt(i)        
        if(j>sqrt(i))
        {
            //设置域宽为5,输出素数
            printf("%5d ",i);
            //每输出一个素数 寄一个数
            flag++;
            //每五个素数输出一次换行
            if(flag%5==0)
                printf("\n");
        }
        
    }
     //返回0,代表程序执行结束
    return 0;
}

如有帮助,还请帮忙点下采纳!感谢!

注释如下:

#include<bits/stdc++.h>
using namespace std;
bool ss(int i)  //素数判断函数
{
if(i==1)return false;  //等于1直接返回false , 1是非素数
int j;
for(j=2;j*j<=i;j++)  //从2开始,逐一和2,3,4,5,....求余数,只要有一个求余得0,就返回是非素数
{
if(i%j==0)return false;
}
return true;   //直接j*j<=i都没有一个被整除的,就返回是素数
}
int main(){
int x,y,a=0;
cin>>x>>y;
for(int i=x;i<=y;i++)
{
if(ss(i)==true)a++;   //在x,y间,逐个调用素数判断函数,返回true,计数变量就加1

}
cout<<a;  //输出x,y间一共有多少个素数
return 0;
}