伪君子


私信TA

用户名:lbj

访问量:92952

签 名:

我觉得吧,能实现就好^_^

等  级
排  名 46
经  验 12169
参赛次数 0
文章发表 23
年  龄 20
在职情况 学生
学  校 山西工程技术学院
专  业

  自我简介:

个人博客:https://lbjheiheihei.xyz 微信公众号:伪君子的梦呓

解题思路:

用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;
}


 

0.0分

6 人评分

  评论区

你这都不是自定义函数
2020-09-03 12:10:52
如果是负数就不对了
2020-04-13 23:06:18
nb
2019-11-03 17:14:22
#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;
}
为什么答案错误
2019-04-03 17:02:05
优秀
2018-12-19 23:11:50
  • «
  • 1
  • »