2756 - 质数大家都很熟
Time Limit : 1 秒
Memory Limit : 128 MB
大家应该很熟悉质数的判断了,这道题作为入门题,也十分简单.
给你几个数,判断它们是不是质数.(-1,0,1都不是质数)
Input
第一行为数据的组数T.
之后的T行,每行输入一个数字K,K保证在int范围内。
Output
对每一个数字k,在单独的一行中输出它是不是质数。是的话输出yes,不是的话输出no,不要输出其他任何东西。
Examples
Input Format
2 6 13
Output Format
no yes
Solution C
#include<stdio.h> int main(){ int i,m,n,k; scanf("%d",&n); for(k=n;k>0;k--){ scanf("%d",&m); for(i=2;i<=m/2;i++) if(m%i==0) break; if(i>m/2&&m!=1&&m!=0&&m!=-1) printf("yes\n"); else printf("no\n"); } return 0; }
Solution C++
#include<iostream> using namespace std; void correct(int K){ int i; if(K==-1||K==0||K==1) cout<<"no"<<endl; else{ for(i=2;i<K;i++){ if(K%i==0){cout<<"no"<<endl;break;} } if(i>=K)cout<<"yes"<<endl;} } int main(){int T,a; cin>>T; for(int m=0;m<T;m++){ cin>>a;correct(a);} }
Solution Java
import java.util.Scanner; class Main { public static void main(String args[]) { Scanner reader = new Scanner(System.in); MainTest test=new MainTest(); int T = reader.nextInt(); for(int i=0;i<T;i++){ int first=reader.nextInt(); if(first<=1) System.out.println("no"); else if(first==2||first==3)System.out.println("yes"); else{ if(test.prime(first)){ System.out.println("yes"); } else System.out.println("no"); } } } } class MainTest{ boolean prime(int n){ for(int i=2;i<=Math.sqrt(n);i++){ if(n%i==0) return false; } return true; } }