解题思路:

用N从2开始除N前面的数。

        如果有一个数能够被N整除,即余数为0,那么N就不是素数。

        如果前面的数都不能被N整除,那么N就是素数。


思路有了,那就来实现,先定义一个flag,并初始化为1,然后弄一个for循环

        如果N%i为0,把flag的值改为0,然后输出不是素数,退出循环。

        如果完成了for循环,flag的值还是为1,那么N就是素数,输出是素数。



注意事项:





参考代码:

#include<iostream>
using namespace std;
int main()
{
	int i, N, flag=1;           //定义一个标记,并且初始化为1
	cin >> N;
	for (i = 2; i < N; i++)        //从2开始
	{
		if (N%i == 0)         //如果一个数能被N整除,那么N就不是素数
		{ 
			flag = 0;       //flag为0
			cout << "not prime"; //输出not prime
            break;          //退出循环
		}
		
	}
	if (flag==1)               //如果flag为1,即N为素数
		cout << "prime";        //输出prime
	return 0;
}


点赞(7)
 

0.0分

3 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 6 条评论

阿苏勒 3年前 回复TA
@小白是黑色的 加两个break跳出for循环
无言 4年前 回复TA
你这都不是自定义函数
别扒拉我 4年前 回复TA
如果是负数就不对了
小白是黑色的 5年前 回复TA
#include<iostream>
#include"cmath"
#include <iomanip>
using namespace std;
void Judge(int a){
    for (int i=2;i<=a;i++){
        if(a%i==0&&a!=i) {
            cout << "not prime" << endl;
        } else
            if(a%i==0&&a==i){
                cout<<"prime"<<endl;
            }
    }

}
int main(){
    int a;
    cin>>a;
    if(a>1) {
        Judge(a);
    }
    if (a<=1){
        cout<<"not prime"<<endl;
    }
        return 0;
}
为什么答案错误
cpython3 6年前 回复TA
优秀