c语言判断多行素数

最近在牛客网上刷题偶然刷到了好题,刚开始以为只是普通的素数判断题型,运行后却卡了一下,觉得题目设计的很巧妙,想分享一下。

#题目描述
给你一个整数n, 判断它是否是素数。注意1不是素数。
#输入描述:
第一行输入一个整数T,表示需要判断的数的个数
接下来T行每行一个整数n,表示需要判断的数。
1<=n<=1e5,1<=T<=10
#输出描述:
输出T行,判断是否是素数。是,输出“Yes”,否则输出“No”
在这里插入图片描述

先贴上我的代码

#include<stdio.h>
int main(){
    int T,n;
    scanf("%d",&T);
    while(T--){
        scanf("%d",&n);
        int flag=0;
        if(n==1){
           flag++; 
        }
		for(int i=2;i<n;i++){
			if(n%i==0){
				flag++;
				break;
			}
		}
		if(flag==0){
			printf("Yes\n");
		}
		if(flag!=0) {
		    printf("No\n");
        }
    }
}

我一开始卡在了代码每次只能判断一个数是否为质数,所以我加上了标记变量flag作为判断。当该整数为1或者有因子则flag!=0,最后再添加判断flag的数值。
这道题判断的个数取决于T的大小,所以加上判断条件为T自减到0即while(T–)。

发布了14 篇原创文章 · 获赞 2 · 访问量 634

猜你喜欢

转载自blog.csdn.net/zys_shan/article/details/104515530