题目描述
质数是指除了1和本身之外没有其他约数的数,如7和11都是质数,而6不是质数,因为6除了约数1和6之外还有约数2和3。输入一个正整数,判断它是否为质数,如是质数则输出“Yes”,否则输出这个数的大于1的最小的约数。
输入
仅有一行包含一个正整数n,其中 1 < n < 1000000
输出
仅有一行,如果从输入文件读入的数是质数则输出“Yes”,否则输出这个数的大于1的最小的约数。
样例输入
2009
样例输出
7
#include<iostream>
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n,y=0,o;
cin>>n;
for(int i=2;i<=n-1;i++)
{
if(n%i!=0)
{
y++;
}
else
{
o=i;
break;
}
}
if(y==n-2)
{
cout<<"Yes";
}
else
{
cout<<o;
}
return 0;
}