【SGU】113. Nearly prime numbers 合数分解

来源:互联网 发布:github java 项目 编辑:程序博客网 时间:2024/06/05 03:09

传送门:【SGU】113. Nearly prime numbers


题目分析:O(sqrt(N))。。


代码如下:


#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>using namespace std ;#define rep( i , a , b ) for ( int i = ( a ) ; i <  ( b ) ; ++ i )#define For( i , a , b ) for ( int i = ( a ) ; i <= ( b ) ; ++ i )#define rev( i , a , b ) for ( int i = ( a ) ; i >= ( b ) ; -- i )#define clr( a , x ) memset ( a , x , sizeof a )const int MAXN = 5 ;int n ;bool check ( int x ) {int top = 0 ;for ( int i = 2 ; i * i <= x ; ++ i ) {if ( x % i == 0 ) {while ( x % i == 0 ) {x /= i ;top ++ ;if ( top > 2 ) return 0 ;}}}if ( x > 1 ) ++ top ;return top == 2 ;}void solve () {int x ;For ( i , 1 , n ) {scanf ( "%d" , &x ) ;printf ( check ( x ) ? "Yes\n" : "No\n" ) ;}}int main () {while ( ~scanf ( "%d" , &n ) ) solve () ;return 0 ;}


0 0