不理解第八行代码,求答疑

求解答疑问(要求正文大于30个字符,我就乱打了。看看老夫i返回时覅u让服务规范无法回去edge给覅u啊二段hi)

img


第八行的代码怎么理解?难道2不小于7?

if b<a 说明循环没有全部运行完,说明break肯定被调用过,换言之,就是存在可以整除的数,所以不是素数

是因为for循环没有加括号所以只执行for循环下面的1条语句
当找到一个因数时,立马终止循环,而此时并没有循环完,因此a肯定小于b,输出不是素数即可
判断质数还可以这样写:

#include <stdio.h>
#include <math.h>
using namespace std;
int main()
{
    int num;
    scanf("%d",&num);
    for(int i=2;i<=sqrt(num);i++)
    {
        if(num%i==0)
        {
            printf("%d不是质数",num);
            return 0;
        }
    }
    printf("%d是质数",num);
    return 0;
}

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 你可以看下这个问题的回答https://ask.csdn.net/questions/7781300
  • 除此之外, 这篇博客: C语言实现最小生成树之克鲁斯卡尔算法中的 1.遍历上三角矩阵,把两个顶点相连的边信息存储到结构体edge中, 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
    int k = 0;
    	for(int i=0; i<n; ++i)
    	{
    		for(int j=i; j<n; ++j)
    		{
    			if(g->Edge[i][j]!=0 && g->Edge[i][j]!=MAX_COST)
    			{
    				edge[k].x = i;
    				edge[k].y = j;
    				edge[k].cost = g->Edge[i][j];
    				k++;
    			}
    		}
    	}
    

    在这里插入图片描述在这里插入图片描述
    A-B的权值是6,A-C的权值是1……B-C的权值是5……


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^